Skip to content

Instantly share code, notes, and snippets.

@rsnemmen
Created January 23, 2019 22:39
Show Gist options
  • Save rsnemmen/5cc1a0454807a4ace2ab1b29159f2e43 to your computer and use it in GitHub Desktop.
Save rsnemmen/5cc1a0454807a4ace2ab1b29159f2e43 to your computer and use it in GitHub Desktop.
Jupyter notebook: creating publication quality plots with matplotlib
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Making publication-quality plots with matplotlib\n",
"=========================\n",
"\n",
"Here I will create a plot illustrating the following features:\n",
"\n",
"- Displays multiple lines\n",
"- One of the axis is in log scale\n",
"- Shows a title\n",
"\n",
"As will become clear, matplotlib's default style choices are not so good and not ready for including in a paper or a presentation. With just a few enhancements, the plot reaches *publication-quality*."
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"source": [
"%pylab inline"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [],
"source": [
"x=array([1,10,100,1000,10000])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Bad plot: matplotlib's default style\n",
"\n",
"This is matplotlib's default styles. I modified the figure size on purpose to stress some of the issues with matplotlib's default choices. This plot suffers from several issues:\n",
"\n",
"- The fonts are too small. If you include this plot in a paper, the size of the fonts will be almost nonlegible.\n",
"- If the paper is printed in B&W, the reader will not be able to tell which line is which"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"figure(figsize=(8,4))\n",
"\n",
"plot(x,sin(x), label='Model 1')\n",
"plot(x,x/x, label='Model 2')\n",
"\n",
"title(\"Default matplotlib style\")\n",
"xscale('log')\n",
"xlabel('x-axis')\n",
"ylabel('y-axis')\n",
"legend()\n",
"\n",
"savefig('bad-plot.png')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Good, publication-quality plot\n",
"\n",
"The version below is much better. I did the following changes:\n",
"\n",
"- Increased the font size\n",
"- Associated different line styles, thus making the plot B&W-friendly"
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"figure(figsize=(8,4))\n",
"\n",
"plot(x,sin(x), lw=3, label='Model 1')\n",
"plot(x,x/x, '--', lw=3, label='Model 2')\n",
"\n",
"title(\"Publication-quality plot\", fontsize=16)\n",
"xscale('log')\n",
"xlabel('x-axis', fontsize=15)\n",
"ylabel('y-axis', fontsize=15)\n",
"legend(fontsize=13)\n",
"\n",
"tick_params(axis='both', which='major', labelsize=13)\n",
"tick_params(axis='both', which='minor', labelsize=12)\n",
"tight_layout()\n",
"\n",
"savefig('good-plot.png')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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.7.0"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment