Skip to content

Instantly share code, notes, and snippets.

@datavistics
Created September 8, 2017 13:27
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 datavistics/86bfe08c7d653e08c4c9a33001f8f88e to your computer and use it in GitHub Desktop.
Save datavistics/86bfe08c7d653e08c4c9a33001f8f88e to your computer and use it in GitHub Desktop.
An attempt to use plotnine to create a barplot with a line.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from plotnine import *\n",
"import pandas as pd\n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>letter</th>\n",
" <th>num_of_letters</th>\n",
" <th>pos</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Alpha</td>\n",
" <td>5</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Beta</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Delta</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Gamma</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" letter num_of_letters pos\n",
"0 Alpha 5 1\n",
"1 Beta 4 2\n",
"2 Delta 5 3\n",
"3 Gamma 5 4"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"d = {'letter': ['Alpha', 'Beta', 'Delta', 'Gamma'],\n",
" 'pos': [1, 2, 3, 4],\n",
" 'num_of_letters': [5, 4, 5, 5]}\n",
"\n",
"df = pd.DataFrame(d)\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\Derek-T\\Anaconda3\\envs\\myers_briggs\\lib\\site-packages\\plotnine\\geoms\\geom_path.py:82: UserWarning: geom_path: Each group consist of only one observation. Do you need to adjust the group aesthetic?\n",
" warn(\"geom_path: Each group consist of only one \"\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAHICAYAAABgVMGnAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzt3X18zfX/x/HnOWd2th3GZoeobHMZIQmhMdddiITkqlou\nSpkixC8lXeiK7xdFYeSqfNXXvlRSQkLJin71jfpSrpKEw7KxMc4+vz/6Od/WZmyNz3vzuN9uu9nn\n83mfz+f1Oa8de+5zcY7DsixLAAAABnLaXQAAAMDZEFQAAICxCCoAAMBYBBUAAGAsggoAADAWQQUA\nABiLoAIAAIxFUAEAAMYiqAAAAGMRVACD7d69Ww6HQ+PGjbO7FBTS3Llz5XA49Mknn1zQ7cTExKhV\nq1YXdBuAHQgquCSdPHlSM2fOVIcOHVSxYkUFBwcrPDxcDRo0UGJiolJSUuwusciMGzdODodDn376\naZGt87ffftO4cePO+st38uTJmjt3bpFt76945JFH5HA4FBsbKz4xBCh+guwuALjYdu/erc6dO+vb\nb79VXFychgwZosqVKyszM1Nbt27VO++8o2nTpunjjz9W69at7S7XSL/99pueeuopScrzr/jJkycr\nJiZGCQkJF7ewPzl58qTmz5+v6tWr68cff9TKlSvVoUMHW2u6ULZt2yaHw2F3GUCRI6jgknLixAnd\neuut2rZtm95++23dcccduca8/PLLmjdvnkJDQ8+5vvT0dJUpU+ZClIqz8Pv9OnnypMLCws45dsmS\nJTp8+LCSk5PVs2dPJSUlldig4na77S4BuCA49YNLyqxZs7R161aNGDEiz5AiSUFBQerfv7+aNm0a\nmPfJJ5/I4XBo7ty5mjFjhurXr6+QkBANGTIkMObAgQMaMmSIYmJiFBwcrIoVK6pv377avXt3rm1k\nZWXppZdeUv369RUaGqrw8HC1a9dO69atO6/92LBhg7xer+rUqaM9e/YU7EnIR3p6usaMGaNatWrJ\n7XYrMjJSXbp00b///e/AmLlz5yo2NlaS9NRTT8nhcMjhcCgmJiZwTc2ePXu0du3awDKHw5Hjedix\nY4cSEhJUuXJlBQcH64orrtCDDz4on8+Xo54zp62+++47Pfroo4qOjpbb7dbbb799XvuTlJSkGjVq\nKD4+XnfddZfeffddHTp0KNe4M9eRrFmzRpMnT1bNmjXldrsVGxurv//977nGf/HFF+rXr59q1aol\n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\nHz78nDUCJiCo4JLSvXt3rV27VklJSWf9i76gqlevLqfTqczMzEDYyU/NmjW1d+9etWrVSkFB5/cS\nrFu3rsaPH6+2bdsqPj5eH330kRo0aPBXSw/wer0qV66cUlNTz2sfzvV+HWdb/scjI+ezncL46aef\ntGLFCnXu3Fl33XVXruU7d+7UqFGj9Oabb2rw4MEFXv+3336rr776Sk888YSefvrpHMvOHJU7H/Xq\n1VPz5s31+uuv63/+5380b948NW3aVPXq1cs1tmLFikpISFBCQoIsy9Jjjz2mF154QYsWLTrne9U0\nbNhQDRs2lPT7HUTNmzfXY489piFDhig4OPi86wXswjUquKQMGDBAderU0cSJE/XPf/4zzzFWAd+9\ntHz58rrlllv0/vvva82aNXmOOXDgQOD7u+++W6mpqYG7UfIb+0e1atXSunXr5PF41Lp16yJ991yn\n06m+ffvq22+/1bx5885ZV+nSpSWd/RRH6dKl81zWoEED1atXT7Nnzw6cBvojy7LyvH24IF5//XVl\nZ2froYceUvfu3XN9DR8+XBUqVAgcwSioM0dd/vxz8ssvvxR4nffff7/27dunQYMG6dChQ7rvvvty\nLM/IyFBGRkaOeQ6HIxA8/nxK6o/+fKu3JEVERKhq1arKyspSenp6gWoF7MIRFVxSQkJC9P7776tT\np07q0aOH4uLidOONN6py5co6fvy4duzYEXiPjpiYmPNe7/Tp0xUXF6f27durd+/eaty4sZxOp/bs\n2aPly5erUaNGgbeUf/jhh7V69WqNGzdO69atU4cOHRQZGam9e/dqw4YN2rlz51kvnKxatarWr1+v\ntm3bql27dlq2bJni4+PPq8b58+fn+Zb3VapU0d13363x48drw4YNSkhI0NKlS9WiRQt5PB799NNP\nWr16tUJDQwNBrHz58qpevboWLVqkatWqqWLFivJ4POrUqZMkqWnTppo9e7aeeOIJ1a5dW06nU506\ndZLH4wncht2wYUMlJCSoXr16OnXqlHbv3q2lS5fqnnvuKfRnG2VnZ+v111+X1+s96+feuFwude3a\nVdOnT9emTZvUqFGjAm3jqquuUt26dfXSSy/p2LFjuvrqq7Vr1y7NmDFD1apVO+f1KX/Uo0cPDRs2\nTPPnz89xEe0Z27dvV8uWLdWlSxddffXV8nq92rlzp6ZPn64yZcoEbg3Py7PPPqsPP/xQt956q2Jj\n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\npKysLHXo0EF9+/aV0/nfM3oLFizQhx9+qFKlSikhIUGtWrWSJG3evFkLFizQ/v375fF41KZNG/Xt\n2/di7SL+wOl0qlWrVpo2bZqOHDkir9erNWvWKDk5WYcPH1Z0dLQefPBBValSRRMmTNChQ4f0/PPP\ny+l0qlOnTrrrrrs0e/ZsffbZZzp+/LgqVaqkAQMGnNfRGRQ9p9OpatWqadSoUXrggQe0atUqdezY\n8aw9/aMvv/xSixcvlmVZ6tGjh8LDwzVr1ixerxfA8ePH9eabb2rIkCFq0aJFYP6VV16pgQMHSpJ+\n+OEHJSUlae/evSpVqpSaNWumAQMGqFSpUpKkzp0764EHHtC7774rn8+n1q1bq0+fPpoyZYq2bt2q\n6OhoPfroo4G30S/oeF7XvyOoGGj16tVq1aqV4uPjtWDBAu3YsUPVqlXLc+zmzZs1depUHT16VGPH\njlWlSpXUvn17SdKOHTvUqlUrzZ8/XykpKZo8ebKaNGmisLAwud1uPfzww4qOjtZPP/2ksWPHKjY2\nVjfccMPF3FVI8vv9Wr16tbxeryIjI/XFF1/ozTff1OOPP64rr7xSK1eu1DPPPKNXX31VI0eO1LZt\n23Kd+qlWrZruuOMOeTweLVu2TC+++KJmzZrFX/I28ng8atCggbZu3Sqv13vWnp75pSdJjRs3Vvfu\n3XOd+uH1WvT+85//KCsrS82aNTvrGKfTqXvvvVc1a9bU4cOH9dRTT2nZsmW6/fbbA2NSUlI0YcIE\nZWRkaOjQodq+fbsGDx6s2NhYvfjii1q0aJESExMLNZ7X9e+4mNYwP/zwg3766SfFx8fL6/Xq6quv\n1qpVq846vlevXgoLC1OlSpXUqVMnrVu3LrCsfPnyuvXWW+VyudS8eXM5HA7t27dPklS3bl3FxsbK\n6XQqJiZGLVu21JYtWy74/uG/Zs+erV69eqlHjx6aPXu27r77brlcLn3wwQfq2rWrYmJi5HK5dNNN\nN8nhcGjbtm1nXVerVq0UHh4ul8ul2267TadPn9bevXsv4t4gL5GRkUpPTy9UT/+I12vRS0tLU3h4\nuIKC/vv3+vjx49WrVy91795dH330kapVq6batWvL5XKpQoUKuvHGG3M97926dVPp0qVVoUIF1alT\nRzVr1lSNGjUUFBSkuLg47dy5s9DjeV3/jiMqhlm9erVq166tihUrSvr9B3XevHnq169fnuO9Xm/g\n+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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x20b831c6940>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<ggplot: (140529205624)>"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(ggplot(df) + \n",
" geom_bar(aes(x='letter',y='pos'), stat='identity') + \n",
" geom_line(aes(x='letter',y='num_of_letters'), stat='identity') + \n",
" ggtitle('Greek Letter Analysis')\n",
")"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.2"
},
"varInspector": {
"cols": {
"lenName": 16,
"lenType": 16,
"lenVar": 40
},
"kernels_config": {
"python": {
"delete_cmd_postfix": "",
"delete_cmd_prefix": "del ",
"library": "var_list.py",
"varRefreshCmd": "print(var_dic_list())"
},
"r": {
"delete_cmd_postfix": ") ",
"delete_cmd_prefix": "rm(",
"library": "var_list.r",
"varRefreshCmd": "cat(var_dic_list()) "
}
},
"types_to_exclude": [
"module",
"function",
"builtin_function_or_method",
"instance",
"_Feature"
],
"window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 2
}
@has2k1
Copy link

has2k1 commented Sep 8, 2017

Very subtle but it is all in the warning. The issue is you have 4 groups (Alpha, Beta, ...) and each of those groups has a single point. You may consider this an edge case where the automatic grouping that is done for you is not sufficient (or just not what you expect). Solution is to manually set the group for geom_line.

(ggplot(df) + 
   geom_bar(aes(x='letter',y='pos'), stat='identity') + 
   geom_line(aes(x='letter',y='num_of_letters'), stat='identity', group=1) + 
   ggtitle('Greek Letter Analysis')
)

tmp0

To understand why the behaviour behind the warning is not wrong, check this out

d = {'letter': ['Alpha', 'Beta', 'Delta', 'Gamma'] * 2,
     'pos': [1, 2, 3, 4] * 2,
     'num_of_letters': [5, 4, 5, 5] * 2}

df = pd.DataFrame(d)

df.loc[4:, 'num_of_letters'] += 0.8
df

(ggplot(df) +
   geom_bar(aes(x='letter',y='pos'), stat='identity') +
   geom_line(aes(x='letter',y='num_of_letters')) +
   ggtitle('Greek Letter Analysis')
)

tmp1

With the above there are 2 points per group so you can get lines. Depending on what you are trying to do you may want to improve on such a plot and add some color.

(ggplot(df)
   geom_bar(aes(x='letter',y='pos', fill='letter'), stat='identity') +
   geom_line(aes(x='letter', y='num_of_letters', color='letter'), size=1) +
   scale_color_hue(l=0.45)  + # some contrast to make the lines stick out
  ggtitle('Greek Letter Analysis') +
)

tmp2

@datavistics
Copy link
Author

Hey, that is totally fair, I just couldn't figure that out on my own or via documentation. Its a great package, I do wish there was more community support.

Its very kind of you to respond with such an indepth explanation. I really appreciate that @has2k1

@has2k1
Copy link

has2k1 commented Sep 9, 2017

Great. I will add this example to the tutorials page of the documentation. That should have been my thought in the first place.

@raijinspecial
Copy link

sorry for the noob question, but I am trying to change the colors of bars plotted using geom_col. I used fill to color them by a category from my dataframe, but I would like to be able to specify which color represents a specific group, I am failing to find a clear way to do this.

Plotnine is wonderful, its my go to now.

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment