Skip to content

Instantly share code, notes, and snippets.

@mwaskom
Last active August 29, 2015 13:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mwaskom/9773880 to your computer and use it in GitHub Desktop.
Save mwaskom/9773880 to your computer and use it in GitHub Desktop.
Seaborn FacetGrid histogram example
{
"metadata": {
"name": ""
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Python/R plotting example."
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Into pandas:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# File is .Rdata, figured I might aswell get it with rmagic.\n",
"%load_ext rmagic\n",
"%R load(url(\"http://bit.ly/dasi_nc\"))\n",
"%R write.csv(nc, file=\"nc.csv\", row.names=FALSE)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import pandas as pd\n",
"\n",
"ncdf = pd.read_csv(\"nc.csv\",na_values=\"NA\")\n",
"dateDownloaded = !date\n",
"\n",
"print ('\\nDate downloaded: ' + str(dateDownloaded))\n",
"ncdf.head()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Date downloaded: ['Tue Mar 25 16:46:05 PDT 2014']\n"
]
},
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>fage</th>\n",
" <th>mage</th>\n",
" <th>mature</th>\n",
" <th>weeks</th>\n",
" <th>premie</th>\n",
" <th>visits</th>\n",
" <th>marital</th>\n",
" <th>gained</th>\n",
" <th>weight</th>\n",
" <th>lowbirthweight</th>\n",
" <th>gender</th>\n",
" <th>habit</th>\n",
" <th>whitemom</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>NaN</td>\n",
" <td> 13</td>\n",
" <td> younger mom</td>\n",
" <td> 39</td>\n",
" <td> full term</td>\n",
" <td> 10</td>\n",
" <td> married</td>\n",
" <td> 38</td>\n",
" <td> 7.63</td>\n",
" <td> not low</td>\n",
" <td> male</td>\n",
" <td> nonsmoker</td>\n",
" <td> not white</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>NaN</td>\n",
" <td> 14</td>\n",
" <td> younger mom</td>\n",
" <td> 42</td>\n",
" <td> full term</td>\n",
" <td> 15</td>\n",
" <td> married</td>\n",
" <td> 20</td>\n",
" <td> 7.88</td>\n",
" <td> not low</td>\n",
" <td> male</td>\n",
" <td> nonsmoker</td>\n",
" <td> not white</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td> 19</td>\n",
" <td> 15</td>\n",
" <td> younger mom</td>\n",
" <td> 37</td>\n",
" <td> full term</td>\n",
" <td> 11</td>\n",
" <td> married</td>\n",
" <td> 38</td>\n",
" <td> 6.63</td>\n",
" <td> not low</td>\n",
" <td> female</td>\n",
" <td> nonsmoker</td>\n",
" <td> white</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td> 21</td>\n",
" <td> 15</td>\n",
" <td> younger mom</td>\n",
" <td> 41</td>\n",
" <td> full term</td>\n",
" <td> 6</td>\n",
" <td> married</td>\n",
" <td> 34</td>\n",
" <td> 8.00</td>\n",
" <td> not low</td>\n",
" <td> male</td>\n",
" <td> nonsmoker</td>\n",
" <td> white</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>NaN</td>\n",
" <td> 15</td>\n",
" <td> younger mom</td>\n",
" <td> 39</td>\n",
" <td> full term</td>\n",
" <td> 9</td>\n",
" <td> married</td>\n",
" <td> 27</td>\n",
" <td> 6.38</td>\n",
" <td> not low</td>\n",
" <td> female</td>\n",
" <td> nonsmoker</td>\n",
" <td> not white</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows \u00d7 13 columns</p>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 2,
"text": [
" fage mage mature weeks premie visits marital gained weight \\\n",
"0 NaN 13 younger mom 39 full term 10 married 38 7.63 \n",
"1 NaN 14 younger mom 42 full term 15 married 20 7.88 \n",
"2 19 15 younger mom 37 full term 11 married 38 6.63 \n",
"3 21 15 younger mom 41 full term 6 married 34 8.00 \n",
"4 NaN 15 younger mom 39 full term 9 married 27 6.38 \n",
"\n",
" lowbirthweight gender habit whitemom \n",
"0 not low male nonsmoker not white \n",
"1 not low male nonsmoker not white \n",
"2 not low female nonsmoker white \n",
"3 not low male nonsmoker white \n",
"4 not low female nonsmoker not white \n",
"\n",
"[5 rows x 13 columns]"
]
}
],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from __future__ import print_function\n",
"\n",
"%R print(head(nc,5))\n",
"ncdf.head()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"text": [
" fage mage mature weeks premie visits marital gained weight\n",
"1 NA 13 younger mom 39 full term 10 married 38 7.63\n",
"2 NA 14 younger mom 42 full term 15 married 20 7.88\n",
"3 19 15 younger mom 37 full term 11 married 38 6.63\n",
"4 21 15 younger mom 41 full term 6 married 34 8.00\n",
"5 NA 15 younger mom 39 full term 9 married 27 6.38\n",
" lowbirthweight gender habit whitemom\n",
"1 not low male nonsmoker not white\n",
"2 not low male nonsmoker not white\n",
"3 not low female nonsmoker white\n",
"4 not low male nonsmoker white\n",
"5 not low female nonsmoker not white\n"
]
},
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>fage</th>\n",
" <th>mage</th>\n",
" <th>mature</th>\n",
" <th>weeks</th>\n",
" <th>premie</th>\n",
" <th>visits</th>\n",
" <th>marital</th>\n",
" <th>gained</th>\n",
" <th>weight</th>\n",
" <th>lowbirthweight</th>\n",
" <th>gender</th>\n",
" <th>habit</th>\n",
" <th>whitemom</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>NaN</td>\n",
" <td> 13</td>\n",
" <td> younger mom</td>\n",
" <td> 39</td>\n",
" <td> full term</td>\n",
" <td> 10</td>\n",
" <td> married</td>\n",
" <td> 38</td>\n",
" <td> 7.63</td>\n",
" <td> not low</td>\n",
" <td> male</td>\n",
" <td> nonsmoker</td>\n",
" <td> not white</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>NaN</td>\n",
" <td> 14</td>\n",
" <td> younger mom</td>\n",
" <td> 42</td>\n",
" <td> full term</td>\n",
" <td> 15</td>\n",
" <td> married</td>\n",
" <td> 20</td>\n",
" <td> 7.88</td>\n",
" <td> not low</td>\n",
" <td> male</td>\n",
" <td> nonsmoker</td>\n",
" <td> not white</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td> 19</td>\n",
" <td> 15</td>\n",
" <td> younger mom</td>\n",
" <td> 37</td>\n",
" <td> full term</td>\n",
" <td> 11</td>\n",
" <td> married</td>\n",
" <td> 38</td>\n",
" <td> 6.63</td>\n",
" <td> not low</td>\n",
" <td> female</td>\n",
" <td> nonsmoker</td>\n",
" <td> white</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td> 21</td>\n",
" <td> 15</td>\n",
" <td> younger mom</td>\n",
" <td> 41</td>\n",
" <td> full term</td>\n",
" <td> 6</td>\n",
" <td> married</td>\n",
" <td> 34</td>\n",
" <td> 8.00</td>\n",
" <td> not low</td>\n",
" <td> male</td>\n",
" <td> nonsmoker</td>\n",
" <td> white</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>NaN</td>\n",
" <td> 15</td>\n",
" <td> younger mom</td>\n",
" <td> 39</td>\n",
" <td> full term</td>\n",
" <td> 9</td>\n",
" <td> married</td>\n",
" <td> 27</td>\n",
" <td> 6.38</td>\n",
" <td> not low</td>\n",
" <td> female</td>\n",
" <td> nonsmoker</td>\n",
" <td> not white</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows \u00d7 13 columns</p>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 3,
"text": [
" fage mage mature weeks premie visits marital gained weight \\\n",
"0 NaN 13 younger mom 39 full term 10 married 38 7.63 \n",
"1 NaN 14 younger mom 42 full term 15 married 20 7.88 \n",
"2 19 15 younger mom 37 full term 11 married 38 6.63 \n",
"3 21 15 younger mom 41 full term 6 married 34 8.00 \n",
"4 NaN 15 younger mom 39 full term 9 married 27 6.38 \n",
"\n",
" lowbirthweight gender habit whitemom \n",
"0 not low male nonsmoker not white \n",
"1 not low male nonsmoker not white \n",
"2 not low female nonsmoker white \n",
"3 not low male nonsmoker white \n",
"4 not low female nonsmoker not white \n",
"\n",
"[5 rows x 13 columns]"
]
}
],
"prompt_number": 3
},
{
"cell_type": "heading",
"level": 5,
"metadata": {},
"source": [
"Drop NA's for simplicity:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"ncdf = ncdf.dropna()\n",
"%R nc <- na.omit(nc)\n",
"\n",
"r_rows = %R nrow(nc)\n",
"p_rows = len(ncdf)\n",
"\n",
"print ('DF-rows in R after NAs are removed: ', r_rows)\n",
"print ('DF-rows in iPy after NAs are removed: ', p_rows)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"DF-rows in R after NAs are removed: [800]\n",
"DF-rows in iPy after NAs are removed: 800\n"
]
}
],
"prompt_number": 4
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Plotting birthweight by habit of mother"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import numpy as np\n",
"import seaborn as sns\n",
"import matplotlib.pyplot as plt\n",
"grid = sns.FacetGrid(ncdf, col=\"habit\", size=6, aspect=.7)\n",
"grid.map(plt.hist, \"weight\", bins=np.linspace(0, 12, 24), linewidth=0);"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\ns5aqkpISTZs2TX6/X5I0a9Ys5efnq7S0VMYYrV69WjU1NfJ6vVq2bJl+85vf6Pnnn1dDQ8N5CQ8A\nAOCKs5aqpKQkzZ8/P7giVV1drbS0NElSenq6Kioq9Je//EWpqamKjo5WXFyckpKStGvXrpZPDgAA\n4JCzlqpBgwYpMjIyePurciVJsbGxqq2tVV1dneLj40+7v66urgWiAgAAuCukSypERPx/B6urq1NC\nQoLi4uLk8/mC9/t8PiUkJDQ5VmJifJPbhIur2VzNJbmd7UzCnTfcz382LmezweX9czWbq7kkd7OR\nK3QuZ2uukEpV9+7dVVlZqT59+mjdunXq37+/evTooblz56qhoUH19fXavXu3UlJSmhyrpqb2nEO3\npMTEeCezuZpLcjvbtwlnXpePl6vZbE62Lu6f5PaxdzGX5G42coXO1Wyhzj3NKlUej0eSVFBQoMLC\nQvn9fiUnJyszM1Mej0djxoxRTk6OAoGA8vPz1aZNm9CTAwAAXMCaLFVdunTRsmXLJElXX321vF7v\nN7bJyspSVlaW/XQAAAAXCC7+CQAAYAGlCgAAwAJKFQAAgAWUKgAAAAsoVQAAABZQqgAAACygVAEA\nAFhAqQIAALCAUgUAAGABpQoAAMACShUAAIAFlCoAAAALKFUAAAAWUKoAAAAsoFQBAABYQKkCAACw\ngFIFAABgAaUKAADAAkoVAACABZQqAAAACyhVAAAAFlCqAAAALKBUAQAAWECpAgAAsIBSBQAAYAGl\nCgAAwAJKFQAAgAWUKgAAAAsoVQAAABZQqgAAACygVAEAAFhAqQIAALCAUgUAAGABpQoAAMACShUA\nAIAFlCoAAAALKFUAAAAWUKoAAAAsiAr1DwKBgKZOnaq///3vioiI0NNPP63IyEgVFBQoIiJCKSkp\nKioqksfjaYm8AAAATgq5VL333ns6ceKEXnvtNVVUVGju3LlqbGxUfn6+0tLSVFRUpNWrV+u2225r\nibwAAABOCvnjv3bt2qm2tlbGGNXW1io6Oloffvih0tLSJEnp6emqqKiwHhQAAMBlIa9UpaamqqGh\nQZmZmTp+/LgWLlyoTZs2BR+PiYlRbW2t1ZAAAACuC7lULVq0SKmpqZo4caIOHjyoMWPGqLGxMfi4\nz+dTQkJCk+MkJsaH+tTnjavZXM0lfTPbHZNWhClJ84T7WIb7+c/G5Ww2uLx/rmZzNZfkbjZyhc7l\n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\nAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x10cf0d590>"
]
}
],
"prompt_number": 5
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment