Skip to content

Instantly share code, notes, and snippets.

@jkibele
Created April 25, 2018 23:43
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 jkibele/c31cc4a750eb59330bf3acad57490f75 to your computer and use it in GitHub Desktop.
Save jkibele/c31cc4a750eb59330bf3acad57490f75 to your computer and use it in GitHub Desktop.
Python stacked bar plot with plotnine
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Using matplotlib backend: MacOSX\n",
"Populating the interactive namespace from numpy and matplotlib\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/usr/local/lib/python2.7/site-packages/IPython/core/magics/pylab.py:161: UserWarning: pylab import has clobbered these variables: ['xlim', 'ylim', 'annotate', 'arrow']\n",
"`%matplotlib` prevents importing * from pylab and numpy\n",
" \"\\n`%matplotlib` prevents importing * from pylab and numpy\"\n"
]
}
],
"source": [
"%pylab\n",
"from plotnine import *\n",
"from plotnine.data import *"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>manufacturer</th>\n",
" <th>model</th>\n",
" <th>displ</th>\n",
" <th>year</th>\n",
" <th>cyl</th>\n",
" <th>trans</th>\n",
" <th>drv</th>\n",
" <th>cty</th>\n",
" <th>hwy</th>\n",
" <th>fl</th>\n",
" <th>class</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>audi</td>\n",
" <td>a4</td>\n",
" <td>1.8</td>\n",
" <td>1999</td>\n",
" <td>4</td>\n",
" <td>auto(l5)</td>\n",
" <td>f</td>\n",
" <td>18</td>\n",
" <td>29</td>\n",
" <td>p</td>\n",
" <td>compact</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>audi</td>\n",
" <td>a4</td>\n",
" <td>1.8</td>\n",
" <td>1999</td>\n",
" <td>4</td>\n",
" <td>manual(m5)</td>\n",
" <td>f</td>\n",
" <td>21</td>\n",
" <td>29</td>\n",
" <td>p</td>\n",
" <td>compact</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>audi</td>\n",
" <td>a4</td>\n",
" <td>2.0</td>\n",
" <td>2008</td>\n",
" <td>4</td>\n",
" <td>manual(m6)</td>\n",
" <td>f</td>\n",
" <td>20</td>\n",
" <td>31</td>\n",
" <td>p</td>\n",
" <td>compact</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>audi</td>\n",
" <td>a4</td>\n",
" <td>2.0</td>\n",
" <td>2008</td>\n",
" <td>4</td>\n",
" <td>auto(av)</td>\n",
" <td>f</td>\n",
" <td>21</td>\n",
" <td>30</td>\n",
" <td>p</td>\n",
" <td>compact</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>audi</td>\n",
" <td>a4</td>\n",
" <td>2.8</td>\n",
" <td>1999</td>\n",
" <td>6</td>\n",
" <td>auto(l5)</td>\n",
" <td>f</td>\n",
" <td>16</td>\n",
" <td>26</td>\n",
" <td>p</td>\n",
" <td>compact</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" manufacturer model displ year cyl trans drv cty hwy fl class\n",
"0 audi a4 1.8 1999 4 auto(l5) f 18 29 p compact\n",
"1 audi a4 1.8 1999 4 manual(m5) f 21 29 p compact\n",
"2 audi a4 2.0 2008 4 manual(m6) f 20 31 p compact\n",
"3 audi a4 2.0 2008 4 auto(av) f 21 30 p compact\n",
"4 audi a4 2.8 1999 6 auto(l5) f 16 26 p compact"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mpg.head()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<ggplot: (283921389)>"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nvvvuJEmPHj3St2/fKk9Uebv1pzECAAAA0DZPPfVUS+j61a9+laampvz973/P3//+9ypPVlkVv2cX\nb06pVEpdnTb5ZtTX11d7BGh31jnWwI75GVF01jjWAIl1UOuefPLJJMkee+yRcePGVXma6qlq7Fq/\nfn0eeuih/Pa3v83ixYvz+uvVdYJdAAAgAElEQVSvp1evXtlrr71y2GGH5QMf+EA6ddLjkqRbt27p\n3r17tcfocOrr69PY2FjtMXZPr1R7AHalN7XOrYFC8btu+7wftM6vgWLxXsCbWQOWQPF4v6ttq1ev\nTpL07NmzypNUV1VKUrlczne+851cddVVeemll7a536BBg3L++efnvPPOS6lUquCEu5/Vq1e33FSO\nHevdu3fq6+uzYcOGvPbaa9UeB9rd8uXLqz0CVWYNtM77AbXE7wGsAZJduw6Es47joosuysUXX9zy\n9+eff36LjvLzn/88p59+ehUmq46Kx67Vq1fnox/9aObMmZNk+58GsHjx4nzpS1/KzJkzc8cdd9T0\npzOWy+Vs2LCh2mN0SH5u1ALrHGtgx/yMKDprHGuAxDqoVT179syee+6Z1atX57XXXktdXV0GDBjQ\nsr1bt25VnK7yKh67Tj311MyePTvJG/ehOvLII3P00Ufnne98Z3r27JmmpqY8++yzmTVrVmbPnp1y\nuZzZs2fn1FNPzS233FLpcQEAAAB2axdccEEuuOCCTJkyJWeccUaGDh2aBQsWVHusqqlo7Lrvvvty\n6623plQqZe+9987NN9+cww47rNV9v/SlL+XRRx/Npz71qcyfPz+33nprZs+enSOOOKKSIwMAAADQ\ngVT04/2mTp2a5I3T6+bMmbPN0LXJoYcemnvvvTe9evVKklx33XXtPiMAAAAAHVdFY9dDDz2UUqmU\nM844I8OGDWvTMfvss0/OOOOMlMvlPPjgg+08IQAAAAAdWUVj1+LFi5O8ccbWzti0//Y+uREAAAAA\nKhq7Nn3s5caNG3fquO19YiMAAAAAbFLR2DVo0KAkye9///udOu7RRx/d4ngAAAAAaE1FY9fhhx+e\ncrmcKVOm5IUXXmjTMc8//3x+/vOfp1Qq5fDDD2/nCQEAAADoyCoau0477bQkSVNTU4444og89thj\n293/sccey9ixY9PU1JQkmThxYrvPCAAAAEDH1amST3bEEUfkxBNPzIwZM7JgwYK8733vy5gxY/Kh\nD30o73znO9OjR4+sXLky//u//5u77747s2fPTrlcTqlUyoknnpgxY8ZUclwAAAAAOpiKxq4kueGG\nG3LMMcfkgQceSLlczuzZszN79uxW9910Y/oPfvCDuf766ys5JgAAAAAdUEUvY0ySbt265b777su3\nvvWtDBo0KOVyeZt/Bg8enG9/+9u59957061bt0qPCgAAAEAHU/Ezu5Kkrq4uX/rSl3Leeefl4Ycf\nzu9+97ssXrw4r7/+enr16pXBgwfnsMMOy/vf//506lSVEQEAAAA6lNNPPz2nn356tceouqqWpE6d\nOmX06NEZPXp0NccAAAAAoCAqfhkjAAAAALSXisauxYsXZ+TIkRk5cmTuvPPONh1z11135eCDD84h\nhxySV155pZ0nBAAAAKAjq2jsmjZtWh5//PHMnz8/Y8eObdMxRx55ZF544YX84Q9/yLRp09p5QgAA\nAAA6sorGrvvuuy+lUikf+chH0qVLlzYd06VLl3z0ox9NuVzOPffc084TAgAAANCRVTR2/elPf0qS\nHHrooTt13Hvf+94tjgcAAACA1lQ0dr388stJksGDB+/UcXvuuWeS5KWXXtrlMwEAAABQHBWNXZ06\ndUqSNDc379Rxa9euTZKUy+VdPhMAAAAAxVHR2DVgwIAkyTPPPLNTx/3lL39JkvTv33+XzwQAAABA\ncVQ0dh188MEpl8u55ZZb2nyW1saNG3PLLbekVCplxIgR7TwhAAAAAB1ZRWPXsccemyR59tlnc8UV\nV7TpmCuuuCLPPvtskuS4445rt9kAAAAA6PgqGrtOPfXU7LXXXkmSr3/96zn77LPzyiuvtLrvK6+8\nki984Qv5j//4j5RKpQwaNChnnHFGJccFAAAAoIPpVMkn69KlS66//vocffTR2bBhQ6655pr89Kc/\nzfvf//68613vSs+ePdPU1JSnnnoqDz/8cJqbm1Mul9O5c+dMnTo1DQ0NlRwXAAAAgA6morErSY44\n4oj88pe/zMSJE/P6669nzZo1mT17dmbPnr3Ffpvu6dW7d+9cd911GTt2bKVHBQAAAArmfd0OrfYI\nbdanvne1R+iQKh67kuSEE07In/70p3zjG9/ITTfdlNdee22rffr06ZPx48fnwgsvzNChQ6swJQAA\nAFA0577t89UegXZWldiVJHvvvXd++MMf5pprrsncuXOzaNGivPbaa+ndu3eGDBmSESNGpK6uorcU\nAwAAAKCDq1rs2qSuri4HHnhgDjzwwGqPAgAAAEAH59QpAAAAAApD7AIAAACgMKp+GSMAAABApXzt\nywuqPUKb9e1Xn/P/Px/at7PELgAAAKBmLHxhfbVHaLPVq8vVHqFDchkjAAAAAIUhdgEAAABQGGIX\nAAAAAIUhdgEAAABQGGIXAAAAAIUhdgEAAABQGGIXAAAAAIUhdgEAAABQGGIXAAAAAIUhdgEAAABQ\nGGIXAAAAAIUhdgEAAABQGGIXAAAAAIUhdgEAAABQGGIXAAAAQAc3ZsyYlEqlXHTRRWlubs7ll1+e\nESNGpFevXimVSlmxYkW1R6yYTtUeAAAAAIBdY82aNRk9enQeffTRdO7cOd27d6/2SBXnzC4AAACA\ngrjmmmvy7LPP5uabb05TU1NWrFiRBQsWpEePHtUerWKc2QUAAABQEE1NTZk1a1Y+9KEPtXxv2LBh\nVZyo8pzZBQAAAFAQI0aM2CJ01SKxCwAAAKAgRo0aVe0Rqk7sAgAAACiIAQMGVHuEqhO7AAAAAAqi\nvr6+2iNUndgFAAAAQGGIXQAAAAAUhtgFAAAAQGGIXQAAAAAUhtgFAAAAQGGIXQAAAAAURqdqDwAA\nAADAWzNnzpxqj7DbcGYXAAAAAIUhdgEAAABQGGIXAAAAAIUhdgEAAABQGGIXAAAAAIUhdgEAAABQ\nGGIXAAAAAIUhdgEAAABQGGIXAAAAAIUhdgEAAABQGGIXAAAAAIUhdgEAAABQGGIXAAAAAIXRqdoD\nAAAAAFTKlJv3q/YItLOaj11LlizJI488krlz52bBggVZtmxZOnXqlAEDBuTAAw/Mcccdl0GDBm33\nMR555JHceeedee6559Lc3Jz+/fvnkEMOycknn5zevXtX6JUAAAAAUNOxa8mSJfn0pz+dcrnc8r3u\n3btn7dq1WbhwYRYuXJhZs2bl3HPPzeGHH97qY1x77bWZOXNmkqSuri4NDQ158cUXc9ttt+X+++/P\n5ZdfnqFDh1bk9QAAAADUupqOXRs3bkySHHzwwTnyyCNz4IEHpnfv3tmwYUOefvrp/PjHP86CBQty\n1VVXZciQIdlnn322OH7WrFmZOXNmSqVSxo8fn+OPPz4NDQ2ZP39+rrrqqjz//PO57LLLMnny5HTu\n3LkKrxAAAACgttT0Dep79uyZ7373u7nooosyevTolksO6+vr8+53vzsXX3xx+vTpk/Xr1+e2227b\n4th169Zl2rRpSZJjjz02n/jEJ9LQ0JAk2XffffO1r30tDQ0NWbx4ce65557KvjAAAACAGlXTsatH\njx4ZPnz4Nrc3NjZm5MiRSZLnnntui21z587N8uXLUyqVMm7cuK2OHThwYEaPHp0kmTNnzq4bGgAA\nAIBtqunY1RabzvbasGHDFt+fO3dukmTo0KEZMGBAq8cedNBBSZJnnnkma9asaccpAQAAAEjErh16\n8sknkyTDhg3b4vsLFy5s9fub27StXC5n0aJF7TQhAAAAAJuIXdvx29/+Nn/961+TJGPHjt1i27Jl\ny5Ik/fr12+bxm29bvnx5O0wIAAAAwObErm1YsmRJrrnmmiTJYYcd1nLvrk02XZa46ab0rdl826pV\nq9phSgAAAAA216naA+yOmpqacumll+bVV1/NoEGDcvbZZ7f7c95www0tn+7YmpNOOikTJ05s9zmK\noq6uruW/jY2NVZ5mN7Wi2gOwK72pdW4NFIrfda3zfrB9fg0Ui/cC3swasASKx/sdiF1bWb16dS6+\n+OIsWLAg/fr1yyWXXJJevXpttV/Xrl2TJM3Nzdt8rM23de/efbvPu3Llyrz88svb3L5q1arU19fv\naHz+QalU8nOjJljnWAPb5/2AWmCNYw2QWAeQiF1baG5uziWXXJJnnnkmffr0yaWXXppBgwa1um+/\nfv0yb968lnt3tWbzbTuq6z169MjAgQO3ub179+5bfSIk21ZXV5dSqZRyuZyNGzdWexxod34/YA20\nzvsBtcTvAawBkl27DoQzOiqx6/9pbm7OpZdemj//+c/p2bNnLrnkkgwdOnSb+w8dOjSPPfZYXnjh\nhW3us2lbqVTKkCFDtvv8EyZMyIQJE7a5fenSpW5yvxMaGxtTX1+fjRs3+rlRE6xzrIHWeT+glljj\nWAMku3Yd9O/ff5c9FlSSG9QnWbduXa644orMnTs33bt3z0UXXZR99913u8eMGDEiyRtBa+nSpa3u\n8/jjjydJ9t9//5bLHgEAAABoPzUfu9avX59vfvObefzxx9O1a9d8/etfzzvf+c4dHjdixIg0Njam\nXC5nxowZW21fsmRJHnjggSTJmDFjdvXYAAAAALSipmPXhg0bcuWVV+b3v/99unTpkkmTJuVd73pX\nm47t3LlzTjnllCTJHXfckenTp7fckH7+/Pm59NJLs2bNmgwePDhHHXVUu70GAAAAAP5PTd+z6+mn\n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\nHz+uCRMmKCkpSZKMRvypU6d06tQp/fTTT5owYYLq1Klj9zN3796td955R7m5ufLx8VFmZqaOHj2q\n999/XxcvXtTDDz+sDz74QFu3bpW7u7vc3d2VmpqqiIgIRUVF6YMPPihyzrjVq1drzpw5cnFxkY+P\nj7Kzs3X48GEdPnxYB89TxyMAACAASURBVA8e1MiRI+Xi4lJgnfnz52vTpk2SJHd3d3l7eys1NdW4\ndXfz5s2aOHGi3e+1aNEiffPNN8btv+XKlZMk/fnnn/rzzz8VHR2t6dOnS5IqVaqkrKwspaWlydXV\nVRUqVCiwLUc7cddT/ro7cOBArVixQlu2bFFsbKz8/PwUEhKiJ554wmiUx8TE6LvvvtO+ffuUnJys\nwMBAdevWTX379pWra8FnpFytg5mUlKTFixcrIiJCycnJqlixokJCQvToo49etdx//PGHVq9erUOH\nDikpKUkeHh6qWLGi7rjjDjVv3lzdunUr0PGcNm2aNm3apM6dO+uVV14p9P2v5sr1rHbs2KGNGzfq\nyJEjSklJkY+Pj+rVq6eHHnpIrVu3vup2nckZv/2VwYG7u7u++eYb7dmzR0lJSapUqZLuu+8+Pf74\n46pUqVKhMi9atEiLFy/WvffeqylTpki63Kl85plnlJeXp//85z9q0KCB3e/86quv6tixY+rfv7+e\neuopSSU/v0iFO8TR0dFaunSpoqOjlZaWpmrVqqljx47629/+Jnf3W7uJlp2drbFjxyo6Olru7u7y\n9PTUxYsXtX37dkVERGjs2LFq1qyZw9s7dOiQJk+ebJxj3Nzc5OPjo/j4eJ07d0579uxRnTp1imyn\nWKWkpGjixImKjo5WUFCQwsLCrsutrtHR0Zo1a5YyMjLk4+Mji8WimJgY4zg2adKkUj3XT5s2TZs3\nbzb+38fHRxkZGbp06ZLOnDmjAwcOXJdpJnbs2KH33ntPubm58vX1VW5urk6dOqXPP/9ce/fu1dix\nY+Xh4VFoveK2MyTaGmWlrZHfjQpxZ8+erbVr16pZs2YKCwuzWx7rv11PT0/Nnz//pph6AYBtt3ZL\nCjcd6wkzNze3wOvHjh1TaGio0tLSJF0+kXt5eSk+Pl7x8fGKiopSQECAunXrVmC9mJgYTZw4UTEx\nMZIkV1dXY70tW7Zo69ateuGFF/TQQw8VWO/8+fMaN26c8f8+Pj7y8PBQcnKyfv31V/3666/q3r27\nXnzxxQLrFbcB8OOPP+rjjz82GmpeXl7Kzs7WiRMndOLECW3atEkTJ07U7bffbnN/ZWdn680339Th\nw4eNfXIz2Llzp2bNmiVJuu+++/TEE08YoWJaWpoOHDign3/+2Vg+NTVVkyZNUlJSkqpXr64RI0bo\n3nvvlXT5aurMmTMVGxuryZMna8aMGXYbBlOnTlWnTp00ePBg+fv7Kzk5WR999JF27dqlr776SklJ\nSdq9e7deffVVtW3bVu7u7oqKitK7776rCxcu6KuvvtLo0aNtbjs5OVlz585Vp06dNHToUPn7+ysl\nJUVLlizRsmXL9NNPP6l+/frq3r17gfWqV6+uZ599ViEhIapevbpcXV2Vk5OjQ4cOae7cuTp8+LA+\n+OADzZw5s1DjddWqVVq8eLEkqVOnTho4cKAxAfOlS5e0d+9eHTx40Fh+/vz5Rmc4ICBAn332mcO/\n2Y2Wm5ur8ePHa//+/ca/i8TERG3YsEEHDx7Uf/7zH8XExCgsLEypqany9fVVTk6Ozpw5o7lz5yo+\nPt4IMRxx+vRphYaG6sKFC5Iu/1tMSUnR+vXrtXPnTj355JN21/3xxx81a9YsoxNgLW9sbKxiY2P1\n66+/Gr/v1fj5+dkMVawuXrxo3PKdX0ZGht577z3t3r3beM3Hx0cXL17U3r17tXfvXj344IN66aWX\nCtWjm82N/u2tTp06pRkzZujixYvy9vaWxWJRfHy81q1bp99//11Tp051KDioXLmygoODtW/fPv38\n8892w67Tp08bF246duxovF7S88uVNm/erBkzZigvL8/oEP/111/66quvdOzYMb3xxhsO7JWb17p1\n65STk6NXXnlF7du3l7u7u06cOKGZM2fq6NGj+s9//qP//ve/Ds2Ld+7cOYWFhSklJUVBQUF65pln\n1LRpU7m7uysnJ0dHjhzR5s2bHQoIExMTNX78eJ06dUr16tXThAkTCp3rS8vHH3+sGjVqaMSIEapT\np45ycnK0detWzZ49W8ePH9fs2bPtnrOK6+DBg9q8ebNcXV01dOhQde3aVb6+vrJYLEpOTtaBAwf0\n+++/l8pnXWnmzJlq0qSJhg8frmrVqikzM1Nr167VvHnz9Ntvv2nRokWFbgsvbjtDoq1RFtsa0o0L\ncTt06KC1a9dq3759unDhgt1jk7VetmjRgqALuMkRdqFUWUc81KpVq8Drc+fOVVpamurXr6/hw4fr\nzjvvlIuLi7KysnTmzBmFh4cX6kCmpaUpLCxMZ8+eVcuWLfXoo4+qTp06cnNzU0JCgpYtW6bVq1dr\n9uzZql27tu6++25jXTc3N3Xq1Ent27dXgwYNjNFVycnJ+vHHH7Vo0SKtW7dOjRs3LnCCLE4DYM+e\nPZo1a5Y8PT01aNAgdevWTf7+/srNzdXhw4c1Z84cHT16VO+8846mTZtWaCSDJP3www9ydXXV6NGj\n1apVK3l4eBi3ejhLTk6O5syZI0m6//779eabbxYou4+Pj1q2bKmWLVsar33//feKj4+Xt7e3Jk6c\nqMDAQOO94OBghYWFaeTIkYqLi9PatWv1yCOP2PzsunXrauTIkcb/V6xYUf/85z81dOhQpaWl6dtv\nv9Urr7yiTp06Gcs0atRIQ4cO1Ycffqhdu3YpJyfHZocnMzNTTZs21SuvvGI0FP38/DR06FBdunRJ\nGzZs0OLFi9W1a9cCt1wMHDiw0Lbc3d11zz33aMKECXrhhRf0559/6uDBg0ajW7rcwFywYIGky/MG\n/eMf/yiwjfLly6tDhw7q0KGDzX1xs/vhhx/k6empt956SyEhIbJYLNq9e7c+/PBDxcTEaNGiRdq9\ne7caNWqkYcOGqVq1akpLS9O8efO0bt06rVmzRt27d7d5O8iVcnJyjE5GQECARo4cqaZNm8rFxUX7\n9+/XjBkzNHfuXJvrZmZm6vPPP5fFYtGDDz6oxx57zKifqampOn78uLZs2WJz1IEtY8aMsfteeHi4\n3nvvPUkqdOvNjBkztHv3btWqVUtPPvmkmjRpIi8vL6WlpWnLli368ssvtXHjRtWsWVN/+9vfHCqL\ns9zI3z6/adOmqW7duho2bJhq1aql7OxsbdmyRR9//LFiY2O1dOlSh+dZ69ixo/bt26fw8HA999xz\nNm+z2rJliySpTp06BW65K+n5Jb/k5GTNnDlT3bt318CBA40O8aJFi7RmzRrt2LHDCGFvVampqRo1\nalSBoLBOnToKCwvTiy++qOTkZK1YsUJPP/30Vbc1f/58paSkKDAwUO+++26B29Tc3d3VsGFD4xat\nopw9e1bjxo3TuXPnFBwcrNDQ0OvaWXV3d9eECROM8rq7u6tz585ycXHRhx9+qG3btmnQoEGFbuks\niejoaElSkyZN1K9fP+N1FxcXVapUSW3btr1uDw+qUqWKQkNDjeOol5eX+vXrp8zMTC1cuFCrV6/W\n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\nmE6ePKnKlStr4sSJNhutTz/9tGJiYhQVFaXly5dr+fLlcnd3V/369dW6dWt17dq1wBUp6yTUkuMN\nwfwNgMTERIWGhurMmTPGa15eXvLz85OLi4vy8vJ08eJFSZcDqeKGXdbyZWdnOzRa7crGidX1mhQX\npePPP//Ul19+KYvFolatWmnQoEGqXbt2gQbv1KlTtWXLFqOBWlbY6wzkvxp+tWUcHVVpPQY42nnO\nz83NTf/85z/1zjvv6Ny5c5o7d67mzp0rX19f3XvvvWrXrp3atGljc86mq7FYLJo2bZqOHj2qihUr\nauzYsfL29i60nPV4kZqa6tB27R0vbhY38rfPz9a+lVSgY1mcW0BDQkJUvnx5Xbp0Sbt27TKu6Ofm\n5hq3QNm6Da80zi/2vov0vwcolGQfwbZ27dpp27Ztio6O1ooVK276efFKqkuXLrrvvvsUHh6u/fv3\nKyoqSvHx8frpp5/0008/qUePHnrhhRecXUxcgbaGfc4IcTt27Ggz7AoPD1dubq4CAwMdmiMQgPMR\ndqHEMjMzNXHiRB06dEgVK1bU22+/bfdKdYUKFfTuu+9q37592rNnjw4ePKgTJ04YJ66lS5dq4sSJ\nql27tqSCjfwvv/zSoac15ffZZ5/pzJkz8vHx0fPPP6+QkJACHY6zZ8/q+eefl6QSNRysVxev9nji\nq3F0noobybqv7Y1Gu5Kfn59cXV2Vl5enhIQEu8tZ33N1dS3xnCvX4uLFi8rOzrZ7xdV6a0D+kQM7\nduxQXl6eqlWrptdff91mIGIv7CzufsT1c9ddd+njjz/Wzp079dtvvykqKkoxMTHatWuXdu3apZUr\nV2ry5MnFfjDEokWLtH37drm7u+vNN9+0OYeM9L/jxWuvvVbsW+Jw/Xh4eKhNmzZat26dfv75ZyPY\n2rdvn5KTk+Xp6akHHnig0HrX+/xiFlfebmXvvfwjAm2xHkuzsrKUlJRUotFd3bt3V8OGDfXpp59q\n7ty5cnV1Vd++fe0ubz0325sLUHIsvE5MTDSeimfrPenq37+4KlWqpF69eqlXr16SLs9VtmLFCm3e\nvFlr165VixYtjNtBredue9/T0YA+MTFRt912m933rOWyKsn5kbZG2W1r3OgQt3379vryyy8VExOj\nI0eOGKOKrfN4tW/f/qZ/ajKAy26+njZuCZmZmXr77bd18OBB+fn5aeLEiQ49WatJkyZ69tlnNXXq\nVC1cuFCvvvqqKleurKSkJM2cOdNYLn8joLgn8OzsbGNug+eee06dOnUqdGW9OHOH2WIt381+u1FJ\nWG+tPH36tGJjY6+6vIeHh3HLknV4ty379u2TdHmeMmfMc2B9hLctsbGxRj2zzi8i/e/3rVu3rs3G\nZ2Zmpg4fPmxzm9aJbv/44w+lpaU5XE5rA6osd5KvZO0MOtLBscfT01Pt27fXyy+/rI8//lhffPGF\nBg8eLHd3dx05ckRff/11scq0detWffPNN5KkF154ocgry9bjhZk7I7cqa8D122+/GSMIi3qs/I04\nv5iF9enMRb0XGBh41UCiXr16xjljz549JS5Pr1699Oyzz0qSPv/8c61evdrusn5+fpLsH1diYmIc\nCoLs7QOLxaKDBw9KKnjOuR7q1KmjV1991ThP79+/33jvat/zyJEjDn2Gve+ZkZFhzEFYt25d4/Xi\ntjMk2hplva1hDXHffPNNzZ8/X9OnTzeelrl27doCx4arhdVX+7dbpUoVYx466/QIsbGxxu/KLYzA\nrYOwC8WWnZ2tKVOmKDIyUj4+PpowYYLNSaOvxsfHR506dTIek3z06FFjjqtq1aoZV6t2795drO1a\nr6pJ9ud4yd/Yu5IjDYD8DbWzZ88Wq3w3u8aNG6tq1aqyWCz6/PPPHZoQ1Po4882bN9vs0J89e1ab\nNm2SpAJPqbvRvvvuO5u/69KlSyVdnscj/9B061N/zpw5Y3O9ZcuW2W1ctmnTRuXKlVN6errxWHBH\nWDvXxWm0mp21U2DtHNpSVMfaloCAAA0cOFAPPfRQsdc/fPiwZsyYIenypOldu3Ytcnnr8aK4xzJc\nf40aNVLVqlWVm5ur8PBwZWZmGk/PtXUL47WeX8qSuLg4m080S0lJ0bp16yTJ7oMl8itXrpwxwm7x\n4sXXNJdZ37599cwzz0iS5syZox9++MHmctZQxRpsXsl6zriatWvX2izv1q1bFRcXJ8mxfeAIa720\nx3p7bP5bfYv6nhaLxeHvuWLFCpufv3r1amVmZsrT07PAE7dL0s6QaGvYUlbbGtc7xLUe/623LlqP\nZXXq1FHNmjWvqewAbhzCLhRLTk6O/v3vf+u3335TuXLlNG7cONWvX7/IdXJzc4tsyFgbYBaLpUAj\nrEuXLpKkNWvWFPmIZ6ngRL7e3t5GYHX69OlCyyYlJRV5RdeRBkDjxo0VGBjoUEMtJydH6enpRZb/\n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\nXFy0detWLV68WIsXLzaOK2lpaUZZbr/9dgf2CEpTrVq1VLt2bZ08edLoBBV19f5azi9liYeHhyZP\nnqylS5dq69atOn/+vCpUqKDg4GA99thjxR7R1KhRI82ePVurV69WRESEzp49q8zMTAUEBKhmzZpq\n06aNQ3OHWvXv/1W8kwAADgRJREFU3195eXlasGCB/vvf/8rV1bXALcmjRo3SnXfeqU2bNik2Nlau\nrq4KCQnRgAED1LBhQ2PUUlEaNGig999/X998840OHDigzMxMVa9eXe3bt9cjjzzi0OgwRw0aNEh1\n69ZVZGSkzpw5o8TERGVlZalKlSqqX7++unXrVijUd3NzU1hYmL777juFh4crPj5e7u7uateunQYN\nGuTwb/TAAw9oypQpWrJkiaKjo+Xm5qagoCB16dJFvXr1svu02+K2MyTaGvaYta3hzBC3Q4cO2rFj\nh3FeCA4OLvKp0ABuPoRdcFj+eQSys7MdnoS3SpUqCg0NVWRkpKKjo5WQkKCLFy/K09NT1atXV0hI\niPr06WOzcRIYGKgPPvhAW7ZsUXh4uI4dO6aUlBR5eHjojjvuUL169dS8eXO1bt26wHp333233nvv\nPX399dc6cOCAMjIyVLlyZTVv3lwDBgy46pV3RxsAHTp00L333qs1a9Zo7969OnfunFJTU+Xr66vq\n1aurQYMGat269S01qiu/oKAgvfjiiw4vX6FCBQ0ZMkRDhgxxeJ3g4GCtWrWqyGVeeeUVvfLKK0Uu\nc7VtWLVo0UItWrRwuHxubm565JFH9Mgjj5S4bPXr17/q7b75+fn5adiwYQXCkrIuKChI06ZN0+LF\ni7V7927jqWwdOnTQo48+avdW55YtW+rll19WZGSkjh8/rgsXLig1NVV+fn6qXbu22rVrp65du9rt\njNmTnp5e5O3JV06A6+Xlpddee01du3bVhg0bFBUVZRxDAwICVKtWLTVp0sSYkwY3VocOHYxbZK/2\nWPlrPb+UJZ6ennrsscf02GOPXXVZR84F5cuX1+OPP25zpJAtV9vewIED7Qbd7u7uRR77P/vsM4fK\nULNmTY0ePdqhZa/F7bffrj59+qhPnz7FWs/b21tPPfWUnnrqKZvv29uHV/5eDRs21FtvvVWsz5aK\n386QaGvYY8a2hjND3Pvuu0++vr7G+dxW+Arg5uZiuVUewwEAJbBx40ZNnz5dgYGBDndOAAAlM2bM\nGB04cECPPvqow6GUmZw7d84ID+bMmaPbbrvNySXCjUBbAwBuPkxQDwAAAAAAANMg7AIAAAAAAIBp\nEHYBAAAAAADANJizCwAAAAAAAKbByC4AAAAAAACYBmEXAAAAAAAATIOwCwAAAAAAAKZB2AUAAAAA\nAADTIOwCAAAAAACAaRB2AQAAAAAAwDQIuwAAAAAAAGAahF0AAAAAAAAwDcIuAAAAAAAAmAZhFwAA\nAAAAAEyDsAsAAAAAAACmQdgFAAAAAAAA0yDsAgAA18W8efPk4uIiFxcXzZs3z9nFAQAAQBlB2AUA\nAAAAAADTIOwCAAAAAACAaRB2AQAAAAAAwDQIuwAAAAAAAGAahF0AAAAAAAAwDXdnFwAAANz8MjMz\n9dVXX+mHH37Q3r17df78eeXk5CgwMFDBwcHq3LmzHn/8cVWvXr1Y27VYLNqxY4fWr1+vX375RVFR\nUYqPj5eLi4uqVKmi5s2bq1+/fho8eLA8PT2L3FZeXp4WL16sb7/9Vr/99pvi4uJksVhUpUoVBQQE\nqH79+urUqZMGDRqkKlWq2PyO8+bN04oVKxQZGamEhAS5uroqICBAAQEBatSokbp06aL+/fvLz8+v\nWN8TAAAAN46LxWKxOLsQAADg5rV582Y9+eSTOnPmTJHLNW3aVL/99pvx//PmzdPTTz8tSZo7d66G\nDh1aaJ1nnnlGc+fOvWoZGjRooFWrVumuu+6y+X5CQoJ69eqlnTt3XnVb7733nl577bUCr504cULd\nu3fX4cOHr7r+d999p/79+191OQAAADgHI7sAAIBdK1as0IABA5STkyNJql+/vgYMGKC7775bXl5e\nOnv2rCIiIvT999+rJNfP0tLS5OnpqbZt2+r+++9XvXr1VKFCBWVmZuro0aNatmyZIiMjFR0drR49\nemjv3r2qUKFCoe0MGzbMCLpq1KihRx99VHfddZf8/f2VmpqqI0eO6JdfftG2bdtslqN///5G0NWg\nQQMNGDBAtWrVUsWKFXXx4kUdOnRIW7duVURERLG/IwAAAG4swi4AAGDTqVOn9NRTTxlBV1hYmEJD\nQ+Xm5lZo2YyMDG3cuLHYn/Hiiy9q9uzZ8vf3t/n+uHHj9O677+rNN9/UsWPHNGPGDI0dO7bAMnFx\ncVq5cqUk6YEHHtDGjRtVrlw5m9s7f/684uPjC7y2Z88e7d27V5I0YMAALV68WK6utqc1PXXqVIlC\nPQAAANw4TFAPAABs+ve//61Lly5JuhxKjRs3zmbQJUnlypXTww8/XOzPaN++vd2gS5JcXFz0xhtv\nqG3btpKkL7/8stAyx48fV15eniTpiSeesBt0SVLVqlXVsGHDAq8dPXrU+Hvo0KF2gy5JqlWrlmrX\nrm33fQAAADgfYRcAACgkNzdXixYtkiR5eXlpwoQJTi2PNew6evSoEhISCrzn6+tr/P3rr78We9vX\nuj4AAABuLtzGCAAAComMjNTFixclXb41sGrVqtfts3JycrRs2TKtWLFCv//+u2JiYnTp0iVjtNaV\nTp8+XeBpio0aNdIdd9yhM2fO6IsvvlBubq6GDRumVq1a2R2Jll+bNm3k4+OjtLQ0TZw4UQkJCRoy\nZIiaNm0qFxeXUvueAAAAuDEY2QUAAAo5ffq08XejRo2u2+ccOnRITZo00aBBg/T1118rKipKycnJ\ndoMuSUYIZ+Xm5qZPP/1UXl5eki7f6ti2bVtVrlxZ3bp1U1hYmLZv3253rq3KlStr+vTpcnV1VU5O\njqZPn67mzZuratWq6t27t959990CT5kEAADAzY2wCwAAFJI/UPLz87sun5GcnKzOnTvrjz/+kCRV\nr15dw4YN09SpU7Vw4UItXbpUy5cv1/LlyzVo0CBjvdzc3ELb6tmzp/bs2aP+/fvL09PT+A4bNmzQ\nhAkT1LZtW915551asGCBzbI899xz+vnnn9WtWzdjzq6EhAStWbNGb7zxhpo3b67GjRtr7dq1pb0b\nAAAAUMq4jREAABRSoUIF4++UlJTr8hkfffSRYmJiJF2eWP6LL74wgqorbd++/arbu/fee/Xdd98p\nNTVV27dv186dO7Vt2zZt27ZNmZmZOnHihJ588kkdO3ZM48ePL7R+27ZttX79el24cEHh4eH65Zdf\ntG3bNu3cuVM5OTnav3+/evbsqblz52ro0KHX9N0BAABw/TCyCwAAFBIUFGT8bR15Vdp+/PFHSZK7\nu7tmzpxpN+iSpBMnTji8XV9fX3Xr1k3jxo3Thg0bdP78eb399tvG+5MnT1ZsbKzd9f39/dW7d29N\nmTJF27ZtU0xMjEaMGGG8/89//lPZ2dkOlwcAAAA3FmEXAAAopHHjxqpYsaIkaceOHTp//nypf4Y1\ncKpSpYr8/f3tLpeRkaEtW7aU+HPKly+vsWPHqm/fvpKk7Oxs7dy50+H1q1atqpkzZ6pJkyaSpMTE\nRB08eLDE5QEAAMD1RdgFAAAKcXNz0xNPPCFJyszM1IQJE0r9M3x9fSVJcXFxhSadz2/69OlKSEi4\n5s+rU6eO8XdOTs4NXx8AAAA3BmEXAACw6fXXXzfm7vrvf/+riRMn2pwcXrociBV38vYWLVpIkiwW\ni0JDQ20u8/XXX+utt94qcjvr16/Xhx9+qAsXLthdJi4uTkuXLjX+3zpKS5IWLlyozz//XKmpqXbX\nP3z4sDZu3ChJKleunO6+++4iywQAAADnYYJ6AABgU82aNfXll19qwIABysnJ0fjx47Vw4UINGDBA\nDRo0kKenp86dO6c9e/ZozZo1qlGjhnr06OHw9keMGKEvvvhCOTk5+uijj7R37171799fd9xxh86d\nO6eVK1dq48aN8vPzU58+fQqEVfmdPXtWo0aN0uuvv66OHTuqVatWqlu3rvz8/JSQkKDIyEh9/fXX\nRhg2cOBA3XXXXcb6R44cUVhYmF566SV16dJFLVq0UM2aNeXt7a3z588rIiJCS5YsMcKwl156SeXL\nl7+GPQsAAIDribALAADY1a9fP/3www966qmnFBsbq8OHD2vy5Mk2l61Vq1axth0cHKxPPvlEzz//\nvHJycrRjxw7t2LGjwDJVqlTRokWLtGPHDrthl4uLi6TLc3Ft2LBBGzZssPuZ/fv319y5c22un5aW\nplWrVmnVqlV2P+fFF1/UlClTHP6OAAAAuPEIuwAAQJG6du2q48ePa+7cuVq9erUiIyMVHx8vFxcX\n3XbbbQoODlbXrl31+OOPF3vbzzzzjJo2baqpU6fq559/1rlz51S+fHnVrFlTvXv31vDhw1W9evVC\nIVh+Tz31lBo1aqSffvpJu3btUlRUlGJiYpSeni4fHx/VrFlTrVq10pNPPqkOHToUWj80NFSdOnXS\npk2bFBERoUOHDuns2bPKysqSn5+f6tatqzZt2uiZZ55Rs2bNiv0dAQAAcGO5WCwWi7MLAQAAAAAA\nAJQGJqgHAAAAAACAaRB2AQAAAAAAwDQIuwAAAAAAAGAahF0AAAAAAAAwDcIuAAAAAAAAmAZhFwAA\nAAAAAEyDsAsAAAAAAACmQdgFAAAAAAAA0yDsAgAAAAAAgGkQdgEAAAAAAMA0CLsAAAAAAABgGoRd\nAAAAAAAAMA3CLgAAAAAAAJgGYRcAAAAAAABMg7ALAAAAAAAApkHYBQAAAAAAANMg7AIAAAAAAIBp\nEHYBAAAAAADANAi7AAAAAAAAYBqEXQAAAAAAADANwi4AAAAAAACYBmEXAAAAAAAATIOwCwAAAAAA\nAKZB2AUAAAAAAADT+H8nPp0QLk42JQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 1200x800 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ggplot(mpg, aes(x=\"class\", fill=\"drv\")) + geom_bar()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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.14"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment