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

326 lines
107 KiB
Plaintext
Raw Normal View History

{
"metadata": {
"name": "",
"signature": "sha256:08003effc72ed7242f0098f883755ff31312100e58bf63705b8a1b8c45afc8a4"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# matplotlib"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* Setting Global Parameters\n",
"* Bar Plots, Histograms, subplot2grid\n",
"* Normalized Plots\n",
"* Scatter Plots, subplots\n",
"* Kernel Density Estimation Plots"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import pandas as pd\n",
"import numpy as np\n",
"import pylab as plt"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Prepare data to plot:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"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 = 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 = 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[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)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Setting Global Parameters"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Set the global default size of matplotlib figures\n",
"plt.rc('figure', figsize=(10, 5))"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Bar Plots, Histograms, subplot2grid"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# 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')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 4,
"text": [
"<matplotlib.text.Text at 0x10a5bfe10>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nurTvICXJfpVNv/+E3ynnhb2U
"text": [
"<matplotlib.figure.Figure at 0x1057ff910>"
]
}
],
"prompt_number": 4
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Get the unique values of Embarked and its maximum\n",
"family_sizes = 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')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 5,
"text": [
"<matplotlib.text.Text at 0x10a896c50>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n9957L5nJH/7wB2655RbWrVvH
"text": [
"<matplotlib.figure.Figure at 0x1057fcf90>"
]
}
],
"prompt_number": 5
2015-04-06 20:54:12 +08:00
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Normalized Plots"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"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')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 6,
"text": [
"<matplotlib.text.Text at 0x10aea5350>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nmw7iCRhvZ660mXnegHHzvG7m
"text": [
"<matplotlib.figure.Figure at 0x10ad1ab50>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nXvdTuUcOxWhXy6+S6ORFAJ0S
"text": [
"<matplotlib.figure.Figure at 0x10ad9a890>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nC68+bMNjP5Z8A/Wnayy8JBXX
"text": [
"<matplotlib.figure.Figure at 0x10ae36ad0>"
]
}
],
"prompt_number": 6
}
],
"metadata": {}
}
]
}