data-science-ipython-notebooks/matplotlib/matplotlib-applied.ipynb

436 lines
158 KiB
Plaintext
Raw Normal View History

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<small><i>This notebook was prepared by [Donne Martin](http://donnemartin.com). Source and license info is on [GitHub](https://github.com/donnemartin/data-science-ipython-notebooks).</i></small>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# matplotlib-applied\n",
"\n",
"* Applying Matplotlib Visualizations to Kaggle: Titanic\n",
"* Bar Plots, Histograms, subplot2grid\n",
"* Normalized Plots\n",
"* Scatter Plots, subplots\n",
"* Kernel Density Estimation Plots"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Applying Matplotlib Visualizations to Kaggle: Titanic"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Prepare the titanic data to plot:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"df_train = pd.read_csv('../data/titanic/train.csv')\n",
"\n",
"def clean_data(df):\n",
" \n",
" # Get the unique values of Sex\n",
" sexes = np.sort(df['Sex'].unique())\n",
" \n",
" # Generate a mapping of Sex from a string to a number representation \n",
" genders_mapping = dict(zip(sexes, range(0, len(sexes) + 1)))\n",
"\n",
" # Transform Sex from a string to a number representation\n",
" df['Sex_Val'] = df['Sex'].map(genders_mapping).astype(int)\n",
" \n",
" # Get the unique values of Embarked\n",
" embarked_locs = np.sort(df['Embarked'].unique())\n",
"\n",
" # Generate a mapping of Embarked from a string to a number representation \n",
" embarked_locs_mapping = dict(zip(embarked_locs, \n",
" range(0, len(embarked_locs) + 1)))\n",
" \n",
" # Transform Embarked from a string to dummy variables\n",
" df = pd.concat([df, pd.get_dummies(df['Embarked'], prefix='Embarked_Val')], axis=1)\n",
" \n",
" # Fill in missing values of Embarked\n",
" # Since the vast majority of passengers embarked in 'S': 3, \n",
" # we assign the missing values in Embarked to 'S':\n",
" if len(df[df['Embarked'].isnull()] > 0):\n",
" df.replace({'Embarked_Val' : \n",
" { embarked_locs_mapping[np.nan] : embarked_locs_mapping['S'] \n",
" }\n",
" }, \n",
" inplace=True)\n",
" \n",
" # Fill in missing values of Fare with the average Fare\n",
" if len(df[df['Fare'].isnull()] > 0):\n",
" avg_fare = df['Fare'].mean()\n",
" df.replace({ None: avg_fare }, inplace=True)\n",
" \n",
" # To keep Age in tact, make a copy of it called AgeFill \n",
" # that we will use to fill in the missing ages:\n",
" df['AgeFill'] = df['Age']\n",
"\n",
" # Determine the Age typical for each passenger class by Sex_Val. \n",
" # We'll use the median instead of the mean because the Age \n",
" # histogram seems to be right skewed.\n",
" df['AgeFill'] = df['AgeFill'] \\\n",
" .groupby([df['Sex_Val'], df['Pclass']]) \\\n",
" .apply(lambda x: x.fillna(x.median()))\n",
" \n",
" # Define a new feature FamilySize that is the sum of \n",
" # Parch (number of parents or children on board) and \n",
" # SibSp (number of siblings or spouses):\n",
" df['FamilySize'] = df['SibSp'] + df['Parch']\n",
" \n",
" return df\n",
"\n",
"df_train = clean_data(df_train)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Bar Plots, Histograms, subplot2grid"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.text.Text at 0x10d8a2d90>"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n7E4ZodrINkxSbc2Cqd8
"text/plain": [
"<matplotlib.figure.Figure at 0x10ce4af10>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Size of matplotlib figures that contain subplots\n",
"figsize_with_subplots = (10, 10)\n",
"\n",
"# Set up a grid of plots\n",
"fig = plt.figure(figsize=figsize_with_subplots) \n",
"fig_dims = (3, 2)\n",
"\n",
"# Plot death and survival counts\n",
"plt.subplot2grid(fig_dims, (0, 0))\n",
"df_train['Survived'].value_counts().plot(kind='bar', \n",
" title='Death and Survival Counts',\n",
" color='r',\n",
" align='center')\n",
"\n",
"# Plot Pclass counts\n",
"plt.subplot2grid(fig_dims, (0, 1))\n",
"df_train['Pclass'].value_counts().plot(kind='bar', \n",
" title='Passenger Class Counts')\n",
"\n",
"# Plot Sex counts\n",
"plt.subplot2grid(fig_dims, (1, 0))\n",
"df_train['Sex'].value_counts().plot(kind='bar', \n",
" title='Gender Counts')\n",
"plt.xticks(rotation=0)\n",
"\n",
"# Plot Embarked counts\n",
"plt.subplot2grid(fig_dims, (1, 1))\n",
"df_train['Embarked'].value_counts().plot(kind='bar', \n",
" title='Ports of Embarkation Counts')\n",
"\n",
"# Plot the Age histogram\n",
"plt.subplot2grid(fig_dims, (2, 0))\n",
"df_train['Age'].hist()\n",
"plt.title('Age Histogram')"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.text.Text at 0x10dd37850>"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nq8nvaUBLknYolcoeXHX
"text/plain": [
"<matplotlib.figure.Figure at 0x10cb96650>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Get the unique values of Embarked and its maximum\n",
"family_sizes = np.sort(df_train['FamilySize'].unique())\n",
"family_size_max = max(family_sizes)\n",
"\n",
"df1 = df_train[df_train['Survived'] == 0]['FamilySize']\n",
"df2 = df_train[df_train['Survived'] == 1]['FamilySize']\n",
"plt.hist([df1, df2], \n",
" bins=family_size_max + 1, \n",
" range=(0, family_size_max), \n",
" stacked=True)\n",
"plt.legend(('Died', 'Survived'), loc='best')\n",
"plt.title('Survivors by Family Size')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Normalized Plots"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.text.Text at 0x10ca8e490>"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n/P73j7By5QrGjduIBx9
"text/plain": [
"<matplotlib.figure.Figure at 0x100532f90>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAe8AAAFxCAYAAABa5SD+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XmcZfOd//FXdXe16AXd0hJb2/OJkXSCDtJim8RMFoQs\nkxGJLS1ChvzGMkNCJEx+ZMEgkbZE8AuZQZCIIIstBNEIYeRDE0zaVlEdvdGKrt8f5xRXqeVWd926\ndapfz8ejHu4959zv+Zzqr3rf71lbOjs7kSRJ1TGq2QVIkqSBMbwlSaoYw1uSpIoxvCVJqhjDW5Kk\nijG8JUmqmDHNLkArhohYCtwPvFIz+c7M/HyD13s+8MfMPHkAn5kInAJsDSwtf76XmT8YpJrWAi7N\nzG2X8fOPAR/LzLu7TT8f+ADQVk4aBUwAZmXmt/tpcwPg25n5iQHWshR4a2Y+O5DP1Xz+MeBF4AWg\nExgL/BI4PDNH5HWsEfEm4CvAR4AWYDTwo8z8Vjn/RuCMzPxJ04rUsGd4ayjtmJntQ7zOzvJnIE4C\n5mfmNICIWBO4PSIez8xfL29BmfkksEzBXeptezqBUzLzlK4JEbEu8GBE/DQzH+qjzfWAWMZ6Wpbx\nc1DU/OmuLyIR0QrcBBwMfG852h2WIqIFuBL4E7BNZr4UEZOBqyNifGYex7L1Wa1gDG8NpR7/yEfE\npsB/AqtTjEJOz8wfRsSOwInAXGAzYDFwHHAoRdD8JDMPi4hRwKkUI+WJ5XpmZubvatfb23p6KOmt\nwDMR0ZqZHZn5VETsAbSX7TwGfDwz76p5/7Fy/m+B/wHWB24FFmXmIeVyHwS+BnyKYi/EKsATwO41\nbf0XcAPFH/izgDXKeh4H/ikzu0bVven+O16XIggWlO1/Gfgo8CZgPHAE8DPgXGCtiLgmMz8UETMo\nvsSMp9jz8LXMvLqXdZ4QEVtSjPSPycyrI+JXwCWZeU653q8Aq2fmYX0Vn5kdEXEL5ReJnurNzCsj\n4u3AD4CVym0+NzO/39v0mho+Vtb5GHBw+W97I/A7ii9UUyn+DffJzM6I2Bf4d4o9AzcAh2Zmax3t\nPQe8HTgzM2u/hGxfTv9Q156FzGyPiM9SfIF6ncHcfo0sHvPWULohIu6p+XlzRIwBLgOOyszpwI7A\nERGxdfmZ6cAJmbkp8AxwNPBhYAvgixHxVorQfmtmbpOZmwEXAkfVrLczIkb3sJ4ja9ZT62vA+4G/\nRsQ1EXEMsCAzH+tqj9ePjGpfrw0cn5kBnAB8qtxGgP2AsykDtvzj/QNgX4CImESx2/tiioC/NTNn\nZOaGFF9cPtvH75ay3X8tf7dzIqINOBLYpQyV9YC/B7bPzHcBx5S1LgU+BzxSBvck4DzgM5m5JUV4\nfL8cxffk4XK5zwAXRMSbge8CM8vtGlW231uIvPqFozyksAtFX5lK8e/wunrLRY8Eflb+W34Y2K4c\n1fY4PSL2Bt4BbJWZmwPXUHxh6bJhZu4AvLPrdxQRf0fxBeb9mbkF8Dzl38x+2usE2jNzs27BDUV/\nvr37IYHMnJOZv6mdNkjbv305XSOMI28NpTfsNi//QG4InBfx6l7bNwHvpti1+OfMvLec/gjwt8x8\nGXguIuYDkzPztoh4LiIOKtvaEZjfbd3Rw3pWKtdzR+2CmfnHorTYAtgB2Bn4SkR8MjN/3s82vgzc\nVrbz54i4F/hoRFxPEQr7UYymu/wQ+H1EHAbsSfGHdwFwekRsV07fhCIobu9n3a/uNo+IccB/U4ya\nf1vW83g5kvxsRGwEbEMxmoPXj9jfC6wJ/LTmd7WUItj+t4f1zirbfyAi/qds96pyG6ZRfKF5NDMf\n7uGzLcBFEfECRTB2AOdk5hUAEbFPL/VeDlwYEVsBvwa+VI6Ue5u+C/AeYHa5TaOBlWt+b1eV27Aw\nIuZQ7J3ZAriuPMwBxReSr5Wv+2oPyt95D14pl+1XZj4xCNt/6Eg9d2BF58hbzTaaIpA37/qh2H15\nAcUf9iXdln+5ewMR8RHgaoqAuZIiTLr37VF9rKe2rdERcW5ErJaZd2fmqZn5YeA/gAPLxTp5fdiN\nrXm9pBzJdjkX2JsimC/PzMW168vMx4G7KcJgX6BrN/M3ga9T7G04i+IkrnpGUF2j+q6R+gzgsLLN\nLSi+WEwArgO+Sc9/A0YDD/bwu/plL+us3d4WoKP8HcyiGHHvV77uSdcx780z812ZOT0zT+2v3nIX\n/ibAJcDmwB8jYsPeppefO6lme6ZT7MLu8kK3mloovkjU/n5qT7bsr72FvWzv7cB7yr0Rr4qI90TE\nhd2mDeb2a4QxvNVsCbwYEXvBqydY3Uvxh6ceLRS7mq/KzLOAu4A9eG100xV4da0nM18BNgKOK0+e\n6jqJapOybSjO5n5POW8bilFqb66g+MN+AGUw9+Acit38K2fmbeW0fwD+MzMvKte3M3WO2Gq25W/A\n4eW2rAVsR3GG/39SjAxrf08vA63l69uBTSJi+3Ibp1HsBeltO/ctl9uC4vfUtSfj3HIdW1D8Hgaq\n13oj4mLgU5n538AXKfa0rBsRF/UwfR2K8DsgiisJoBhB135x6/7FqLP8zAfK3x2UhwFKA20PgMy8\nneJ3eUpErFRuy1soRvWPdvv8YG6/RhjDW0Olx113mfkSxTHVmeUu5uuAY2tCrPvneno/C9ghIu4B\nfgH8Cli/PNbXdVJQRz/rqfUJipPJHoqI+ylC/i+8drzx34EvleubCczurb5y+/4LaMnM3pb7GcXJ\nSrWXoh0PfCcibqc4VnwZsHEPtXbXff0Xl/V9B/gx8OZym64H/gCsFhHjKS/ji4jby5PiPg58KyL+\nAPwI+Gxm9rTLHGDDiLib4nj+p8ovDZTt3An8uPxSNFB91Xs8sFdZ3+0UezVuojjPoPv0mym+SPyc\n4qqB+4F3Afv09nsr638Y+Ffguoi4k+JEs649JwNur8bHKcL5rrLOX1Oc3Pe1bp8fzO3XCNPiI0El\nNUJ54trvge0yc26z6xmoiFif4pDHCeXx5I8BR2bme5tbmTQEJ6yVZ/OelJk7dZu+K3Asxe668zLz\n3J4+L6l6IuIA4BvAN6oY3KW/AGtRHDd+GfgbsH9zS5IKDR15R8S/UVw+sjAzZ9RMb6W4FnY6xW6o\nWykuZ1mmuzRJkrQiafQx7zkUNzHofvLGpsCczHy+PBZ5C68/U1OSJPWioeGdmZfTw6U9FCcDPV/z\nfgGwaiNrkSRppGjWTVqep7iNZZeJwLy+PvDyy690jhkzoCtlGu6hhx5i5vmHMX7KxP4XXoEtalvA\nufuewtve9rZmlzKs2Z/qZ5+qj32qfsO4T/V42WGzwvtPFNeRTgIWUewy7/OpR/PmLe5rdlO0ty9k\n/JSJTFxrtWaXMuy1ty+krW1Bs8sY1uxPA2Of6p99amCGY5+a0ssXr6EK706AiNgTmJCZ55S3fbyO\nYtf9DzLzqSGqRZKkSmt4eJcPc5hRvv5xzfSfU9zkQJIkDYB3WJMkqWIMb0mSKsbwliSpYgxvSZIq\nxvCWJKliDG9J0oj3zM2P8cj59zDnvLt55Id3s/jJZb+e+/TTT+aZZ55e5s+fcso3ueeeu5b589C8\nm7RIkjQkXnx2EfPzOTY5YEsAXnh6AU9c/iBx8FbL1N6hhx6+XPW0tPR407QBceQtSRrRRr9pDB3P\nv8hzdz9Jx/wlrPzWiWzy+enMOe9ulvy1uHvn/AfauOKKy3j66afYe+9PccghB3LxxRfymc988tV2\nTjnlm9x8840ccsiBPPHEY8ycuTdPP13cX+yGG37NaaedzKJFCznmmH/j0EO/wKGHfoFHH50DwJVX\nXsb+++/FYYcdwsMPP7Tc22R4S5JGtNZVVmL9vaax+Innefic2fzp9NuZn399/UI1g+H29nZOPfV7\nfPrTe7PRRhtz77338NJLL3HPPXex7bbbvbrcLrvsxrXXXg3ANdf8nN1224MLLjiP6dO34vTTZ3Hk\nkV/mO985iXnz5nHJJT/
"text/plain": [
"<matplotlib.figure.Figure at 0x10cded610>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n2v+11arsfEuShtiIGja
"text/plain": [
"<matplotlib.figure.Figure at 0x10ded4b50>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"pclass_xt = pd.crosstab(df_train['Pclass'], df_train['Survived'])\n",
"\n",
"# Normalize the cross tab to sum to 1:\n",
"pclass_xt_pct = pclass_xt.div(pclass_xt.sum(1).astype(float), axis=0)\n",
"\n",
"pclass_xt_pct.plot(kind='bar', \n",
" stacked=True, \n",
" title='Survival Rate by Passenger Classes')\n",
"plt.xlabel('Passenger Class')\n",
"plt.ylabel('Survival Rate')\n",
"\n",
"# Plot survival rate by Sex\n",
"females_df = df_train[df_train['Sex'] == 'female']\n",
"females_xt = pd.crosstab(females_df['Pclass'], df_train['Survived'])\n",
"females_xt_pct = females_xt.div(females_xt.sum(1).astype(float), axis=0)\n",
"females_xt_pct.plot(kind='bar', \n",
" stacked=True, \n",
" title='Female Survival Rate by Passenger Class')\n",
"plt.xlabel('Passenger Class')\n",
"plt.ylabel('Survival Rate')\n",
"\n",
"# Plot survival rate by Pclass\n",
"males_df = df_train[df_train['Sex'] == 'male']\n",
"males_xt = pd.crosstab(males_df['Pclass'], df_train['Survived'])\n",
"males_xt_pct = males_xt.div(males_xt.sum(1).astype(float), axis=0)\n",
"males_xt_pct.plot(kind='bar', \n",
" stacked=True, \n",
" title='Male Survival Rate by Passenger Class')\n",
"plt.xlabel('Passenger Class')\n",
"plt.ylabel('Survival Rate')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Scatter Plots, subplots"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.text.Text at 0x10c4cc150>"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nXXdN4KGHDmP48OFVzqw
"text/plain": [
"<matplotlib.figure.Figure at 0x10e046810>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Set up a grid of plots\n",
"fig, axes = plt.subplots(2, 1, figsize=figsize_with_subplots)\n",
"\n",
"# Histogram of AgeFill segmented by Survived\n",
"df1 = df_train[df_train['Survived'] == 0]['Age']\n",
"df2 = df_train[df_train['Survived'] == 1]['Age']\n",
"max_age = max(df_train['AgeFill'])\n",
"\n",
"axes[1].hist([df1, df2], \n",
" bins=max_age / 10, \n",
" range=(1, max_age), \n",
" stacked=True)\n",
"axes[1].legend(('Died', 'Survived'), loc='best')\n",
"axes[1].set_title('Survivors by Age Groups Histogram')\n",
"axes[1].set_xlabel('Age')\n",
"axes[1].set_ylabel('Count')\n",
"\n",
"# Scatter plot Survived and AgeFill\n",
"axes[0].scatter(df_train['Survived'], df_train['AgeFill'])\n",
"axes[0].set_title('Survivors by Age Plot')\n",
"axes[0].set_xlabel('Survived')\n",
"axes[0].set_ylabel('Age')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Kernel Density Estimation Plots"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x10c93f450>"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nMnv2XG677WZ2795FR0c
"text/plain": [
"<matplotlib.figure.Figure at 0x10e0a96d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Get the unique values of Pclass:\n",
"passenger_classes = np.sort(df_train['Pclass'].unique())\n",
"\n",
"for pclass in passenger_classes:\n",
" df_train.AgeFill[df_train.Pclass == pclass].plot(kind='kde')\n",
"plt.title('Age Density Plot by Passenger Class')\n",
"plt.xlabel('Age')\n",
"plt.legend(('1st Class', '2nd Class', '3rd Class'), loc='best')"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.10"
}
},
"nbformat": 4,
"nbformat_minor": 0
}