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

631 lines
278 KiB
Plaintext
Raw Normal View History

{
2015-05-31 21:37:22 +08:00
"cells": [
{
2015-05-31 21:37:22 +08:00
"cell_type": "markdown",
"metadata": {},
"source": [
"# matplotlib"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
2015-05-31 21:38:14 +08:00
"Credits: Some content forked from [Parallel Machine Learning with scikit-learn and IPython](https://github.com/ogrisel/parallel_ml_tutorial) by Olivier Grisel\n",
"\n",
2015-05-31 21:37:22 +08:00
"* Setting Global Parameters\n",
"* Basic Plots\n",
"* Histograms\n",
"* Two Histograms on the Same Plot\n",
"* Scatter Plots\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": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import pandas as pd\n",
"import numpy as np\n",
"import pylab as plt\n",
"import seaborn"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Setting Global Parameters"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Set the global default size of matplotlib figures\n",
"plt.rc('figure', figsize=(10, 5))\n",
"\n",
"# Set seaborn aesthetic parameters to defaults\n",
"seaborn.set()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Basic Plots"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
2015-05-31 21:37:22 +08:00
"data": {
"image/png": "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\nZPhlPUGVHj+8djI/ePA
"text/plain": [
"<matplotlib.figure.Figure at 0x10c45bad0>"
]
},
"metadata": {},
2015-05-31 21:37:22 +08:00
"output_type": "display_data"
}
],
"source": [
"x = np.linspace(0, 2, 10)\n",
"\n",
"plt.plot(x, x, 'o-', label='linear')\n",
"plt.plot(x, x ** 2, 'x-', label='quadratic')\n",
"\n",
"plt.legend(loc='best')\n",
"plt.title('Linear vs Quadratic progression')\n",
"plt.xlabel('Input')\n",
"plt.ylabel('Output');\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Histograms"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
2015-05-31 21:37:22 +08:00
"name": "stdout",
"output_type": "stream",
"text": [
"(1000,)\n",
"float64\n",
"[ 0.6806888 0.72202042 1.40490113 1.13979846 0.5729488 1.32584077\n",
" 0.61635621 0.60340336 1.29453467 0.69841457 0.6975998 0.72315991\n",
" 0.66912189 1.03420801 0.62283168 0.38582511 0.89488414 1.4802518\n",
" 1.43819256 0.98605861 0.60402232 1.03820507 0.35598796 1.32901087\n",
" 1.03194436 1.3374366 1.82526334 1.26614489 1.20061661 0.86344001]\n"
]
},
{
2015-05-31 21:37:22 +08:00
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAeQAAAFVCAYAAAA+OJwpAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAFNNJREFUeJzt3W9sndd9H/CvkoiJWXKEJVDBJhMqoLkHLrB2dQd06ALb\n6bKs3la76Jui7bLV6IB0MTCtK1ykTpYXQ7EE0xRAGbJg8JK564rMiJdlCgqnQbMgboP9X7rWsHqc\nZJhED4atiTRjWnEoS9wLXdm0TN77kLr38pD38wEM8d7n8Hl+Pnzu/fLynOc8B9bX1wMA7K637HYB\nAIBABoAmCGQAaIBABoAGCGQAaIBABoAGvK1Lo1LK/0yy0nv4v5N8NMmjSa4meSrJg7VW108BwA4N\nDORSyjuSpNb67g3PnUnycK31yVLKp5Lcn+QLI6sSAPa5Lp+QfzjJdCnld3vtP5Tkzlrrk73tTyR5\nbwQyAOxYlzHkl5OcrLX+1SS/nOS3b9i+mmRu2IUBwCTp8gn5mSTfSpJa6zdLKReT/MiG7bNJXuy3\ng/X19fUDBw7suEgA2GO2HXpdAvmBJD+U5MFSyp/JtQD+cinl7lrr15Lcm+Qrfas6cCAXLry03dom\nzvz8rH7qSF91o5+60U/d6atu5udnt/09XQL500n+VSnl+pjxA0kuJnmklDKV5Okkj2/7yADAawYG\ncq311STv22TTPUOvBgAmlIVBAKABnRYGAdqxtraWxcVzA9stLBwbQzXAsAhk2GMWF8/lxMkzmZ47\nsmWbSysv5PRD9+Xo0cNjrAy4GQIZ9qDpuSOZufXobpcBDJExZABogEAGgAYIZABogDFkGKIuM6AX\nFo5lampqTBUBe4VAhiEaNAP6+uzn48dvH3NlQOsEMgyZGdDAThhDBoAGCGQAaIBABoAGGEOGCbSd\n9bB3c0b4XqkThkEgwwTaznrYuzkjfK/UCcMgkGFC7ZXZ4HulTrhZxpABoAECGQAaIJABoAECGQAa\nIJABoAECGQAaIJABoAECGQAaIJABoAECGQAaYOlMGKOrV17N+fP9b5Zw+fLlJMnBgwc33T7o+zce\n59ChmSwtrd7UPvpxUwcYHoEMY/TK6sWcemwp03PPbdnm4rNnc8vs4S1vqHDx2bM5fNsd3Y7zpc2P\ns619bFGrmzrAcAlkGLNBN0u4tPJ83zaXVp6/6eMMYx/AcBlDBoAGCGQAaIBABoAGCGQAaIBABoAG\nCGQAaIBABoAGCGQAaIBABoAGCGQAaIBABoAGCGQAaIBABoAGCGQAaIBABoAGuB8ysGvW1tayuHhu\ny+3nz2+9DfYbgQzsmsXFczlx8kym545suv3is2dz+LY7xlwV7A6BDOyq6bkjmbn16KbbLq08P+Zq\nYPcYQwaABghkAGiAQAaABhhDBnbk6pVXO82CXlg4lqmpqV2tY9Q1wDAIZGBHXlm9mFOPLWV67rkt\n21xaeSGnH7ovx4/fvmt1jKMGGAaBDOxYvxnSk1gH3AxjyADQgE6fkEspR5L8jyR/OcnVJI/2/n0q\nyYO11vVRFQgAk2DgJ+RSysEk/yLJy0kOJPl4kodrrXf1Ht8/0goBYAJ0+YR8Msmnkvx67/GdtdYn\ne18/keS9Sb4wgtqgOdZeBkalbyCXUn4xyYVa65dLKb+ea5+ID2xosppkrsuB5udnd1rjRNFP3e1G\nXz3zzDPWXt6mQ4dmtvxZLS/P7HoN13ntdaevRmPQJ+QHkqyXUt6T5M8n+c0k8xu2zyZ5scuBLlx4\naUcFTpL5+Vn91NFu9dXS0qq1l7dpaWl1y5/V0tLqrteQeO1th77qZie/tPQdQ6613l1rvafW+u4k\nf5jkbyX5Uinl7l6Te5M8ueUOAIBOtnsd8nqSX03ySCllKsnTSR4felUAMGE6B3LvU/J19wy/FACY\nXBYGAYAGCGQAaIBABoAGCGQAaIBABoAGCGQAaIBABoAGbHdhEIDOrl55te8NN9yMA14nkIGReWX1\nYk49tpTpuec23e5mHPA6gQyMlJtxQDfGkAGgAQIZABogkAGgAQIZABogkAGgAQIZABogkAGgAQIZ\nABogkAGgAQIZABogkAGgAQIZABogkAGgAQIZABogkAGgAQIZABogkAGgAQIZABogkAGgAQIZABog\nkAGgAQIZABogkAGgAQIZABogkAGgAQIZABogkAGgAQIZABogkAGgAQIZABogkAGgAQIZABogkAGg\nAW/b7QJgXNbW1rK4eK5vm4WFY5mamhpTRQCvE8hMjMXFczlx8kym545suv3Sygs5/dB9OX789jFX\nBiCQmTDTc0cyc+vR3S4D4E2MIQNAAwQyADRAIANAAwQyADRAIANAAwQyADRAIANAAwZeh1xKeWuS\nR5L8QJL1JL+c5HtJHk1yNclTSR6sta6PrkwA2N+6fEL+G0mu1lrfleTDSf5xklNJHq613pXkQJL7\nR1ciAOx/AwO51vofkry/9/D7kywn+dFa65O9555I8p6RVAcAE6LTGHKt9Uop5dEkp5P8dq59Kr5u\nNcnc8EsDgMnReS3rWusvllLemeS/JnnHhk2zSV4c9P3z87Pbr24C6afutttXy8szA9scOjTTd79d\n9kF7Bv1cE6+97dBXo9FlUtf7ktxWa/1oku8muZLkv5dS7q61fi3JvUm+Mmg/Fy68dLO17nvz87P6\nqaOd9NXS0mqnNv3222UftGfQz9Vrrzt91c1Ofmnp8gn58SSPllK+luRgkhNJ/iTJI6WUqSRP99oA\nADs0MJBrrd9N8rObbLpn6NUAwISyMAgANKDzpC7Y765eeTXnz5/r22bQdoCdEsjQ88rqxZx6bCnT\nc89t2ebis2dz+LY7xlgVMCkEMmwwPXckM7ce3XL7pZXnx1gNMEmMIQNAAwQyADRAIANAAwQyADRA\nIANAAwQyADRAIANAAwQyADRAIANAAwQyADRAIANAAwQyADRAIANAAwQyADRAIANAA9wPmZFbW1vL\n4uK5vm0WFo5lampqTBUBtEcgM3KLi+dy4uSZTM8d2XT7pZUXcvqh+3L8+O1jrgygHQKZsZieO5KZ\nW4/udhkAzTKGDAANEMgA0ACBDAANEMgA0ACBDAANEMgA0ACBDAANEMgA0ACBDAANsFIXu+7qlVdz\n/nz/ta4T610D+5tAZte9snoxpx5byvTcc1u2sd41sN8JZJpgrWtg0hlDBoAGCGQAaIBABoAGCGQA\naIBJXfS1traWxUWXJLF3dbms7vnnp7K8/HIOHjy4ZRvnOKMmkOlrcfFcTpw8k+m5I1u2cUkSLety\nWd3FZ8/mltnDW57nznHGQSAzkEuS2OsGncOXVp53nrPrjCEDQAMEMgA0QCADQAOMIbMn3DhTdnl5\nJktLq29oYxYso+IGKIyDQGZPGDRT1ixYRskNUBgHgcyeYRYsu8n5x6gZQwaABghkAGiAQAaABhhD\nZl/oMgu2yyxZ2Kku56BZ2PQjkNkXuq5XfPi2O8ZYFZPElQDcLIHMvtFlvWIYJTOxuRl9A7mUcjDJ\nZ5IcS/L2JL+R5GySR5NcTfJUkgdrreujLRMA9rdBk7p+IcmFWutdSX4yySeTnErycO+5A0nuH22J\nALD/DQrkzyX5yIa2l5PcWWt9svfcE0neM6LaAGBi9P2Tda315SQppczmWjh/OMk/3dBkNcncyKoD\ngAkxcFJXKWUhyeeTfLLW+tlSyj/ZsHk2yYtdDjQ/P7uzCidMa/20vDzTqd2hQzNb1t51H7Df9Xud\n7CX74f+hRYMmdb0zyZeTfKDW+tXe098opdxda/1aknuTfKXLgS5ceOmmCp0E8/OzzfXTjXdU6tdu\nq9q77gP2u36vk72ixfepFu3kl5ZBn5AfzrU/SX+klHJ9LPlEkk+UUqaSPJ3k8W0fFQB4g0FjyCdy\nLYBvdM9IqgGACWUtawBogEAGgAYIZABogEAGgAYIZABogEAGgAYIZABogEAGgAYIZABogEAGgAYI\nZABogEAGgAYIZABogEA
"text/plain": [
"<matplotlib.figure.Figure at 0x10c4c1510>"
]
},
"metadata": {},
2015-05-31 21:37:22 +08:00
"output_type": "display_data"
}
],
"source": [
"# Gaussian, mean 1, stddev .5, 1000 elements\n",
"samples = np.random.normal(loc=1.0, scale=0.5, size=1000)\n",
"print(samples.shape)\n",
"print(samples.dtype)\n",
"print(samples[:30])\n",
"plt.hist(samples, bins=50);\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Two Histograms on the Same Plot"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
2015-05-31 21:37:22 +08:00
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAeoAAAFVCAYAAAAg8ayaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XuU5Gdd5/F3d/Vluqure+iZDhEJIKs8xMMgFxUFJOEY\ng8F4CBiPLMiGgAlGrpo1mJFFYROCgrhEWYQEDbd1WXPQFedwCRGTMG6IgQhBwrMblkvumZnurr5U\nT1d3Ve0f3ZOdmXRV/bq7uvqp6vfrnJx0/eo7v3r6mZr61O/3e37P01Or1ZAkSWnq3e4GSJKk+gxq\nSZISZlBLkpQwg1qSpIQZ1JIkJcygliQpYX3NCkIIzwHeHWN8YQjhGcDVQAVYBP5DjPHhEMJFwMXA\nMnBFjPFACGEI+AQwAcwCF8QYD2/VLyJJUjdqeEQdQrgMuAYYXN30X4A3xBhfCHwaeGsI4bHAG4Hn\nAi8CrgohDACXAF+PMb4A+Bjwtq35FSRJ6l7NTn3fDbwM6Fl9/PIY4zdWf+4HFoCfBg7GGJdijDOr\nf+bpwPOAz63Wfg44q5UNlyRpJ2gY1DHGT7NyOvvY4wcBQgjPBV4P/CkwChSP+2OzwNjq9pmTtkmS\npHVoeo36ZCGEXwP2Ay+OMR4JIcwAheNKCsA0KyFdOGlbQ7VardbT09OsTJKkbtE09NYV1CGEX2dl\n0NiZMcap1c23AVeGEAaBXcDpwDeBg8CLgX8BzgFubtranh4OHZpdT5N2pImJgv2UkX2Vjf2UnX2V\njf2UzcREoWlN1qCuhRB6gfcD3wc+HUIA+KcY4ztCCFcDt7ByKn1/jHExhPBB4KMhhFtYGSH+ig38\nDpIk7Wg9ia2eVfMbWHN+U83OvsrGfsrOvsrGfspmYqLQ9NS3E55IkpQwg1qSpIQZ1JIkJcygliQp\nYeu+j3o7VSoVisWmt2Ovy9jYbnK5XEv3KUlSq3RUUBeL01z/xTsZHhltyf5KczOcf9Y+xsf3tGR/\nkiS1WkcFNcDwyCgjhd3b3YyWesMbLuayy/bzhCc8acP7mJqa4pJLXsvHP/4p+vv7W9c4SdK26rig\n7kYr06ZufOrUr3zlf/EXf/FnTE9Ptq5RkqQkGNRN/OAH3+eqq95BLtdHrVbjD/7gCvbuneCP//hK\nHn74YY4cOczzn/8CLrroEq688g/p6+vnoYceoFwuc9ZZZ3Pw4C089NCDXHXVn/DQQw/yqU99knK5\nzOTkJC996a9w3nnnP/Jac3NzvPvd72RmZmUtk7e85T/y5Cf/KO961zu47757WVxc5Fd/9eX8+q//\n2glt7O3t5f3v/yCvfe2r2to3kqStZ1A3cfvtt/HjP76PSy55I9/4xr8yNzdHtVrlaU/bx7nnnsfi\n4iK/8iu/xEUXXUJPTw+Pe9zjeOtbf5/3vvcqHnjgAd7znvfzkY98iIMHb+HHfuwpFItFPvCBa1ha\nWuKCC17OGWf8/Oor1fjYx/6Sn/zJn+a8887nnnt+wFVXvZP3vvdqvv71O/jwh68D4Lbbbn1UG3/q\np57Tvg6RJLWVQd3Euee+hE9+8qNceumbGBnJ87rXvZ5CocBdd32Lr33tqwwP5ymXlx6pf8pTngrA\nyEiBJz7xSQAUCqOUy4sAPOMZzyKXy5HL5Xjyk/8d999/3yN/9rvf/Q533HE7N954AwCzszMMDw/z\npjddyh/90ZXMz8/zohed06bfXJKUgo4L6tLcTPOiFu7rlltu4id+4plceOFF3HDD5/jEJz7KU54S\nGBkp8Lu/u597772Hz3zmbzO/5re//S0Ajh49yve+911OO+20R557whOexNlnn8Mv/MIvcujQw9xw\nw+c4cuQwMd7Fu971ntWj93N51atevv5fVpLUkToqqMfGdnP+Wftavs9GnvrU07nyyj+kv7+farXK\nm970O/T19fOOd7yNGO/i1FN/iBBO5/DhQ8CxgWGPdmz7/Pw8b3nLbzE7O8uFF17M6OjYsQouuOA1\nXHXVf+bv//5vmZ+f57WvfR179uxlcvIIl1zyGnp7c7ziFa+it7fePDWu5S1J3cbVs9roa1+7nZtu\n+kd++7cv29R+XJUmO/sqG/spO/sqG/spG1fPSkxPT0/dI25JktbSUae+O90zn/lsnvnMZ293MyRJ\nHcQjakmSEmZQS5KUsI469e3qWZKknaajgrpYnObv7vwH8qMjLdnf/Mwc5+0719WzJEnJ6qigBsiP\njjAyVtjuZrTUZlfP+tSnPvnIbGY/+7PP48ILL2ph6yRJ28lr1AnYzOpZ9913Lzfc8Hk+9KG/4sMf\nvo7bbruV73zn7tY2UJK0bTruiLrdUl8967GPPZX3ve/PHrk/e3l5mcHBwfZ2kiRpyxjUTaS+elZf\nXx+jo2PUajU+8IH3E8JTefzjT0OS1B0M6iY6YfWsxcVFrrrqnYyMjHDppb+3VV0hSdoGHRfU8zNz\nbd1X6qtn1Wo1Lr/8Up797J/ila+8YB2/vSSpE3RUUI+N7ea8fee2fJ+NpL561s03/xP/+q93sLy8\nzK23/jMAr3vdG3ja01q7ypgkaXu4elYbuXpW+9lX2dhP2dlX2dhP2bh6VmJcPUuStF4ddeq707l6\nliRpvTyiliQpYQa1JEkJM6glSUqYQS1JUsIMakmSEmZQS5KUMINakqSEGdSSJCXMoJYkKWEGtSRJ\nCTOoJUlKmEEtSVLCDGpJkhLWdPWsEMJzgHfHGF8YQvhR4DqgCnwTeH2MsRZCuAi4GFgGrogxHggh\nDAGfACaAWeCCGOPhLfo9JEnqSg2PqEMIlwHXAIOrm94H7I8xvgDoAV4SQjgVeCPwXOBFwFUhhAHg\nEuDrq7UfA962Nb+CJEndq9kR9d3Ay4CPrz5+Vozx5tWfPwucDVSAgzHGJWAphHA38HTgecAfrdZ+\nDvhPrWy4JG2nSqVCsTjdtG5sbDe5XK4NLVK3ahjUMcZPhxCedNymnuN+ngXGgFGgWGf7zEnbJKkr\nFIvTXP/FOxkeGa1bU5qb4fyz9jE+vqeNLVO3aXqN+iTV434eBaZZCePCcdsLa2w/tq2piYlC8yLZ\nT+tgX2VjP2U3MVGgt7fM3lP2Uhh9TN262ZkB9u4tsGfPzuxb31Otsd6gviOEcEaM8SbgHOBG4Dbg\nyhDCILALOJ2VgWYHgRcD/7Jae/PauzzRoUOz62zSzjMxUbCfMrKvsrGfsjvWV5OTs5RKZXpzi3Vr\nS6Uyhw/PUq0OtLGFafA9lU2WLzNZg7q2+v9LgWtWB4t9C7h+ddT31cAtrAxO2x9jXAwhfBD4aAjh\nFmAReMV6fwFJ2g6Nrj/39paZnJxlamqKWq22Zo3USj2JvdFqfgNrzm+q2dlX2dhPJ5qcPFL3+vPw\n8MDKkfKD9zIytpe9p5xadz9zs9O8+GeeuCOvUfueymZiotDTrGa9p74laUcYHhllpLD7Udvz+UF6\nc4vMzxXX+FNS6zkzmSRJCTOoJUlKmEEtSVLCDGpJkhJmUEuSlDCDWpKkhBnUkiQlzKCWJClhBrUk\nSQkzqCVJSphBLUlSwgxqSZISZlBLkpQwg1qSpIQZ1JIkJcz1qCVpi1SrFaampprWjY3tJpfLtaFF\n6kQGtSRtkYXSHAcOHmF87yl1a0pzM5x/1j7Gx/e0sWXqJAa1JG2h4fwoI4Xd290MdTCvUUuSlDCD\nWpKkhBnUkiQlzKCWJClhDiaTtGNUKhWKxemmdVNTU9RqtTa0SGrOoJa0YxSL01z/xTsZHhltWHf4\nwXsZGdtLoXGZ1BYGtaQdZXik+e1S83PFNrVGas5r1JIkJcygliQpYQa1JEkJM6glSUqYQS1JUsIM\nakmSEubtWZK6QpbJTJzIRJ3IoJbUFbJMZuJEJupEBrWkrtFsMhMnMlEn8hq1JEkJM6glSUqYQS1J\nUsIMakmSEmZQS5KUMINakqSEGdSSJCXMoJYkKWHrnvAkhNALXAs8BagCFwEV4LrVx98EXh9jrIUQ\nLgIuBpaBK2KMB1rUbkm
"text/plain": [
"<matplotlib.figure.Figure at 0x10c736a90>"
]
},
"metadata": {},
2015-05-31 21:37:22 +08:00
"output_type": "display_data"
}
],
"source": [
"samples_1 = np.random.normal(loc=1, scale=.5, size=10000)\n",
"samples_2 = np.random.standard_t(df=10, size=10000)\n",
"bins = np.linspace(-3, 3, 50)\n",
"\n",
"# Set an alpha and use the same bins since we are plotting two hists\n",
"plt.hist(samples_1, bins=bins, alpha=0.5, label='samples 1')\n",
"plt.hist(samples_2, bins=bins, alpha=0.5, label='samples 2')\n",
"plt.legend(loc='upper left');\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Scatter Plots"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
2015-05-31 21:37:22 +08:00
"data": {
"image/png": "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\nIvWqGuKzMqxXlV1dPm/
"text/plain": [
"<matplotlib.figure.Figure at 0x10c514950>"
]
},
"metadata": {},
2015-05-31 21:37:22 +08:00
"output_type": "display_data"
}
],
"source": [
"plt.scatter(samples_1, samples_2, alpha=0.1);\n",
"plt.show()"
]
},
{
"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": [
{
2015-05-31 21:37:22 +08:00
"data": {
"text/plain": [
"<matplotlib.text.Text at 0x10d8a2d90>"
]
},
"execution_count": 8,
"metadata": {},
2015-05-31 21:37:22 +08:00
"output_type": "execute_result"
},
{
2015-05-31 21:37:22 +08:00
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlMAAAJZCAYAAACN2rCOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmcXFWZ8PFfyEpMJ5M4jYzKoCI+4oJCRAUVgiLICOIy\njo4rqODCIDOijkZ0NhBHwHlBGVSiBhX1HRgXlBeBicimiCCOMugDKGJcRqLdZCFItn7/OLehaLq7\nOrlVqa7q3/fzySdVt26fe+pW1+nnnvucc6YNDQ0hSZKkbbNDpysgSZLUzQymJEmSajCYkiRJqsFg\nSpIkqQaDKUmSpBoMpiRJkmqY0ekK9KqIeBTwM+BH1aYdgI3AGZn5uZplXwq8MjMHIuIXwEsz8wd1\nypzgcb8BnJ+Z547y2ruBvwamAdOBbwJLM3Nji459EXBCZv50G352OfDjzDx9lNceAZwM7A1sAf4I\nfDAzL6xX4zHr8gHgh+0qX2qnUdo1KN/5MzLzMx2p1HbQrJ2IiC3An2bmQBvrMAd4H/BC7m9nP5+Z\nH27T8V4IPD0z/6Ed5fcae6baa31m7lX9ewrwUuADEfHSmuUeRPkyAQw1PG63oerfA0TEy4EXA8/M\nzKcCTwMeD/xjqw6cmS/clkCqMla9+4HvAJdl5p5V3Y8BzomI5217bcf1XGBmm8qWtofGdm0v4C+A\n0yPiyZ2uWDt0qJ0YWYdpwFeBPko7uxewBHhJRPxzmw67D7CoTWX3HHumtqPM/GXVM/Eu4MsRMQv4\nV2B/ylXGjcDbM3NtRBwGvBeYBewEnJuZH4iI4au/b1VXDgBvjoi9qv0+l5knjjz2OOUtoVxx/Qx4\nEjAbODYzvx0RDwfOBf4MWAn86Rhvbeeq/nOBezPz3oj4G6C/OvZyGnqGGp9XPWvXAntSgq8TM3PP\nar8/AX4OPAb4IfAy4B3ADxrKegulUflr4P8Az6A0ONOAN2Xmd6o6jhZwvg24MjPPG96QmT+KiJcB\nd1XlPwf4cPXeNlT1uyQijgRelpmHV/vd97x6f6uBJwO7AD8FXgkcCSwGTo2IzcDvgdOrczcEnJKZ\nXx7jHEuTUmb+JiJuBXaPiJ8DZwO7U/4QrwVelZm3VBeR76P07GwG3pWZV42zfQFwBqVdmgmsqF7b\nHBF/BE4Bng88nNIzdkZETAdOBQ6nfAevA/bIzAOblHcvJVh5SlXfxp7+8dqJwcZzEREPadX7H3Ga\n96dcoB6amUNVHQYi4rXAo6pjP7I69q6U9u7czDyt6k38cWb2Vfvd97xqt15SHXd3Shv3OmAe8GZg\nekTcBZwFfBZ4aFWfizLzA+g+9kxtfz+i/JEFeA+wMTMXV1c7vwU+VL32DuB1mbkPsC/w3ohYlJlH\nVa8fmJm/qh7fU+33dOCEqkv6PtVVzajlVbs8HTgtM/cGPsX9PUpnAd/JzCdRGpQY4z2dSwk+/jci\nvhMRpwF/npnXV6+P7BlqfD5E+WI/ITP/A5gXEYur1/4a+EZm3tXwM+cAr28o60jgk5QgaufMfGZm\nPpHyxX/PGPUdthi4ZuTGzLw6M2+KiIcC51MC3KdUx/181Rg1szdwCLAHpbH/y8w8C7geeGdmfpVy\nnj+SmU8D3gAcOIFypUklIvYFHgt8D3gBMJCZ+2ZmAN8H/qba9cPAW6s26P3AAU22/xtwffX92Jty\ncfaO6rVZwKrMfDbwl8CHImI28KZq3ydS2rnHcH9bM155M4ELM/Pxo6RMjNdO/M+Iza18/42eBlw7\nHEg11OG2zPyv6ul5wIrqYvRZwGsi4hWjlDXS/sDfZOaTq/f5rsz8HvBx4EuZ+X7gaOBnmbkYeA4l\ncO6bQNlThj1T298QsL56fBiwICKeXz2fBfyuenw4cHhEvJryB3ka8BBgtHvyXwDIzN9FxO8oPU+/\nHn4xM4ciYqzyAO7IzOEciBspAQrA86gam8y8PSIuG+0NZeYa4JCIeDQlIFgCXBQR/56ZwwHNeLci\nG6/CPlUd/wbgKOCdI/a9AphTBVz3AP2Z+S2AiHh/RLyV0oAuAdaMc0woV4LTx3n9GcBtmfl9gMy8\nOSKuqcoebx2mIeCbw/liEfFjRu8u/w/grOqz+S/K1ak02e0YETdWj2dQelhflZm/Bv4zIm6PiOMo\nAdYSyi0ygC8BX63yHy+j9CCNt/0wYJ+IeOPwcSnf2WFfq/6/kdKj/hDKLcdzM3MDQER8Anj7BMsb\n2Rs0rFk7cZ/MbOX7b7R5vDpUPWL7UVJAyMw1VQ/5oZSe//HckJm/qR7/gJKOAqXNHm63Lwb+X0T8\nOaWtek9mrm1S7pRiz9T2tw8PTEp/e0PuwTOAv6q+GD8EnkoJKt5FSV4fKyBpTPJ+UA7VBMq7Z4yf\nH+KBvyObRjt4RPx9ROybmbdn5qcz83WUL/GxY9Rp9ogi1jU8/gzlHDwFWJCZVzbuWF2ZfYrSFX0k\nsKyqwwuBiygN31cpV1XNfr+vBZ45yvt5c0T8HaOf7+mUPyAj39OsEfv9seHxqHltmflJSi/lZZRe\nrB9FxPwmdZY67Z6GnKknZ+aBmXkJQHUxs4zynT4P+CLV97BKP3gWpXf2SOC7ETFtrO3Vz/1lQ/v4\nTO4PjKBqtxp6a6ZR2rXG731jsNSsvMZ2qFGzdqJxWyvf/8g67BMRD2jTImKfiPgs9wc+jT830bbq\nnhHPR2urrgceTbkL8CjguqpHUhWDqe0oIh4HnEjJkwG4BDguImZVX5KPAx+kXNH0Ae/PzIsoVzez\nuf/KZDMP/kKMZ/cm5Y3lm5REy+H78WMlW86hdLM35lQ9gRK4AayidFNT7fPssQ5YXSF9D/gE5Zbe\naJYDRwAvpwRfUK7Ivp6Zn6iO+xLuf39jBaGfAJZExKuGG6+qx+ufKAHvtWVT7FO99kRKF/e3q/f0\npIiYHREzKD2JjY36WDZRfXZVL9deWUZHvhn4k+qf1K0OBpZnGdl3C/AiYIeImB4RtwMPqb6jx1Jy\ngGZWeZMP2k5pH98REdOi5Jd+hZJuMJYhygXVa6o2dQYlOBkOqLa2vGHN2olh01r0/vdgxF2jzLyW\nknv5kep2JhHxMOBjwM8zcx2lvTq2em0B8FrKhdpqYFZE7FEV95IJvGcogenMqrwPUf5+fA34W+B/\nKH9XVPE2X3s1docPD6d9T2ZeXG37F+A0Sjf1DtX/7wDuBr4B/CQifku5j309Jci6HfgycFVEvHiC\n9fjvccrbwINvWQ0/Pxb4TETcDPyqKmc0/1K9v6sjYrg36zrgr6rXPwqcFxE/BX4BXN6kvudQcpUO\nH+3F6nbmDcD0zPzfavPHgS9U53uQcgvghKrxG3U0X2YORknA/zCwNMrw5ruBN2TmCrhvpOJHI2Ju\n9R6PzMzbqobxCkoD99vqPQ3nwo16vMrXgdMiYibwbuCMiDipKvsfM/OXTc6N1Gnj3eI+DfhkRLwO\n+AOll/jQKsn7bynf0Y2U3/c3ZOaGiDh+jO1vpySM/4jyR/0yynd1tDoMP19Oye28kdI7dDv397xs\nTXn3mUg7wf3f+Va8/6Ny9CllXka52L4hIjZRLhaX5/1TvryakjZwFOWC7fPVhdrw1DUXR8SdlLa1\nMWd1rHzWFZSBUvdWxz23Slm4l3Kn44tjnbOpaNrQ0HjfC0mSukOU/NOdhkfeRcQZlKkc3tvZmqnX\nNQ2mIuK9lB6CmZQuxWso0f8W4CbKMPqhiDiacktoE3BSdTtJkjoqIn5AudUBZaqNU7AN60lRpnNZ\nThmEM4PSg/JWk6XVbuMGU1XX5jsy80VVEvO7KUnMp2fmlRFxNuU+9LXApZQhpDsCVwNPGx5RIUmd\nEGXW6O9U034Mb7uQMhWIbZiklmiWM3Uw8OOI+CownzIK7I0NI6wurvbZDFxT3efdGBG3USZhvH6U\nMiVpe3kKMDciLqG0d+8D9rYNk9RKzYKpfsoMzodR5u75Og8cqbQWWEAJtFaPsl2SOulu4NTM/FRE\n7E4ZodrINkxSbc2Cqd8
"text/plain": [
"<matplotlib.figure.Figure at 0x10ce4af10>"
]
},
"metadata": {},
2015-05-31 21:37:22 +08:00
"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": [
{
2015-05-31 21:37:22 +08:00
"data": {
"text/plain": [
"<matplotlib.text.Text at 0x10dd37850>"
]
},
"execution_count": 9,
"metadata": {},
2015-05-31 21:37:22 +08:00
"output_type": "execute_result"
},
{
2015-05-31 21:37:22 +08:00
"data": {
"image/png": "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\nq8nvaUBLknYolcoeXHX
"text/plain": [
"<matplotlib.figure.Figure at 0x10cb96650>"
]
},
"metadata": {},
2015-05-31 21:37:22 +08:00
"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": [
{
2015-05-31 21:37:22 +08:00
"data": {
"text/plain": [
"<matplotlib.text.Text at 0x10ca8e490>"
]
},
"execution_count": 10,
"metadata": {},
2015-05-31 21:37:22 +08:00
"output_type": "execute_result"
},
{
2015-05-31 21:37:22 +08:00
"data": {
"image/png": "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\n/P73j7By5QrGjduIBx9
"text/plain": [
"<matplotlib.figure.Figure at 0x100532f90>"
]
},
"metadata": {},
2015-05-31 21:37:22 +08:00
"output_type": "display_data"
2015-04-06 20:54:12 +08:00
},
{
2015-05-31 21:37:22 +08:00
"data": {
"image/png": "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\nkV/mO985iXnz5nHJJT/
"text/plain": [
"<matplotlib.figure.Figure at 0x10cded610>"
]
},
2015-04-06 20:54:12 +08:00
"metadata": {},
2015-05-31 21:37:22 +08:00
"output_type": "display_data"
2015-04-06 20:54:12 +08:00
},
{
2015-05-31 21:37:22 +08:00
"data": {
"image/png": "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\n2v+11arsfEuShtiIGja
"text/plain": [
"<matplotlib.figure.Figure at 0x10ded4b50>"
]
},
2015-04-06 20:54:12 +08:00
"metadata": {},
2015-05-31 21:37:22 +08:00
"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": [
{
2015-05-31 21:37:22 +08:00
"data": {
"text/plain": [
"<matplotlib.text.Text at 0x10c4cc150>"
]
},
"execution_count": 11,
"metadata": {},
2015-05-31 21:37:22 +08:00
"output_type": "execute_result"
},
{
2015-05-31 21:37:22 +08:00
"data": {
"image/png": "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\nXXdN4KGHDmP48OFVzqw
"text/plain": [
"<matplotlib.figure.Figure at 0x10e046810>"
]
},
"metadata": {},
2015-05-31 21:37:22 +08:00
"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": [
{
2015-05-31 21:37:22 +08:00
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x10c93f450>"
]
},
"execution_count": 12,
"metadata": {},
2015-05-31 21:37:22 +08:00
"output_type": "execute_result"
},
{
2015-05-31 21:37:22 +08:00
"data": {
"image/png": "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\nMnv2XG677WZ2795FR0c
"text/plain": [
"<matplotlib.figure.Figure at 0x10e0a96d0>"
]
},
"metadata": {},
2015-05-31 21:37:22 +08:00
"output_type": "display_data"
}
],
2015-05-31 21:37:22 +08:00
"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')"
]
}
2015-05-31 21:37:22 +08:00
],
"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.9"
}
},
"nbformat": 4,
"nbformat_minor": 0
}