Skip to content

Instantly share code, notes, and snippets.

@mhhennig
Last active July 31, 2024 14:26
Show Gist options
  • Save mhhennig/e517b9cc1f411813f48b0a23cb5ee5b3 to your computer and use it in GitHub Desktop.
Save mhhennig/e517b9cc1f411813f48b0a23cb5ee5b3 to your computer and use it in GitHub Desktop.
multi_panel_matplotlib_figures
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'3.8.4'"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%matplotlib inline\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import matplotlib.gridspec as gridspec\n",
"from matplotlib import transforms\n",
"import matplotlib as mpl\n",
"\n",
"mpl.__version__"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1. Set some useful defaults for Matplotlib"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"\n",
"mpl.rcParams['figure.dpi'] = 100\n",
"mpl.rcParams['savefig.dpi'] = 300\n",
"mpl.rcParams['font.size'] = 12\n",
"mpl.rcParams['legend.fontsize'] = 'large'\n",
"mpl.rcParams['figure.titlesize'] = 'medium'"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 2. Helpers to generate panels\n",
"This was originally written by Dan Goodman, but I cannot find it on the web any more..."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"def panel_specs(layout, fig=None):\n",
" # default arguments\n",
" if fig is None:\n",
" fig = plt.gcf()\n",
" # format and sanity check grid\n",
" lines = layout.split('\\n')\n",
" lines = [line.strip() for line in lines if line.strip()]\n",
" linewidths = set(len(line) for line in lines)\n",
" if len(linewidths)>1:\n",
" raise ValueError('Invalid layout (all lines must have same width)')\n",
" width = linewidths.pop()\n",
" height = len(lines)\n",
" panel_letters = set(c for line in lines for c in line)-set('.')\n",
" # find bounding boxes for each panel\n",
" panel_grid = {}\n",
" for letter in panel_letters:\n",
" left = min(x for x in range(width) for y in range(height) if lines[y][x]==letter)\n",
" right = 1+max(x for x in range(width) for y in range(height) if lines[y][x]==letter)\n",
" top = min(y for x in range(width) for y in range(height) if lines[y][x]==letter)\n",
" bottom = 1+max(y for x in range(width) for y in range(height) if lines[y][x]==letter)\n",
" panel_grid[letter] = (left, right, top, bottom)\n",
" # check that this layout is consistent, i.e. all squares are filled\n",
" valid = all(lines[y][x]==letter for x in range(left, right) for y in range(top, bottom))\n",
" if not valid:\n",
" raise ValueError('Invalid layout (not all square)')\n",
" # build axis specs\n",
" gs = gridspec.GridSpec(ncols=width, nrows=height, figure=fig)\n",
" specs = {}\n",
" for letter, (left, right, top, bottom) in panel_grid.items():\n",
" specs[letter] = gs[top:bottom, left:right]\n",
" return specs, gs\n",
"\n",
"def panels(layout, fig=None):\n",
" # default arguments\n",
" if fig is None:\n",
" fig = plt.gcf()\n",
" specs, gs = panel_specs(layout, fig=fig)\n",
" axes = {}\n",
" for letter, spec in specs.items():\n",
" axes[letter] = fig.add_subplot(spec)\n",
" return axes, gs\n",
"\n",
"def label_panel(ax, letter, *,\n",
" offset_left=0.8, offset_up=0.2, prefix='', postfix='.', **font_kwds):\n",
" kwds = dict(fontsize=18)\n",
" kwds.update(font_kwds)\n",
" # this mad looking bit of code says that we should put the code offset a certain distance in\n",
" # inches (using the fig.dpi_scale_trans transformation) from the top left of the frame\n",
" # (which is (0, 1) in ax.transAxes transformation space)\n",
" fig = ax.figure\n",
" trans = ax.transAxes + transforms.ScaledTranslation(-offset_left, offset_up, fig.dpi_scale_trans)\n",
" ax.text(0, 1, prefix+letter+postfix, transform=trans, **kwds)\n",
"\n",
"def label_panels(axes, letters=None, **kwds):\n",
" if letters is None:\n",
" letters = axes.keys()\n",
" for letter in letters:\n",
" ax = axes[letter]\n",
" label_panel(ax, letter, **kwds)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 3. A helper function to remove plot spines"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"def clear_axes(ax):\n",
" ax.spines['top'].set_visible(False)\n",
" ax.spines['right'].set_visible(False) \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## I. Sizing figures\n",
"\n",
"To size a figure well, it's best to create it in teh correct size from the start.\n",
"\n",
"Usually papers are in A4 format:\n",
"- A4 paper size in inches (in): 8,268 x 11,693 in\n",
"- A4 paper size in cm is 21 x 29.7 cm\n",
"\n",
"Given that a paper will have some margins, this leads to roughly the following options:\n",
"- single column width: 8.9 cm, 3.5 inches\n",
"- 1.5-column width: 12.7 cm, 5 inches\n",
"- two-column width: 18.2 cm, 7.2 inches\n",
"\n",
"`plt.figure()` allows specification of the figure size in units of inches. If this is done, priniting the figure to a pdf files will yield exactly the requested size. \n",
"\n",
"This can be done as follows:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<Figure size 800x400 with 0 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig = plt.figure(figsize=(8, 4))\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## II. Creating multi panel figures"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 800x400 with 10 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig = plt.figure(figsize=(8, 4))\n",
"\n",
"layout = '''\n",
" ABC\n",
" DDE\n",
" '''\n",
"\n",
"height_ratios = [1,1]\n",
"\n",
"specs, gs = panel_specs(layout, fig=fig)\n",
"gs.set_height_ratios(height_ratios)\n",
"gs.hspace=0.8\n",
"gs.wspace=1.2\n",
"\n",
"# subgs = specs['A'].subgridspec(2, 1, wspace=0, hspace=0, height_ratios=[1,2.5])\n",
"\n",
"\n",
"axes = {}\n",
"for letter in 'ABCDE':\n",
" axes[letter] = ax = fig.add_subplot(specs[letter])\n",
"label_panels(axes, letters='ABCDE', postfix='', offset_left=0.8)\n",
"for a in list('A'):\n",
" axes[a].set_axis_off()\n",
"\n",
"axes['A'].scatter(np.random.randn(100), np.random.randn(100))\n",
"axes['B'].plot(np.random.randn(100), np.random.randn(100))\n",
"axes['C'].scatter(np.random.randn(100), np.random.randn(100))\n",
"\n",
"subgs = specs['D'].subgridspec(1, 5, wspace=0.1, hspace=0)\n",
"for i in range(5):\n",
" ax = fig.add_subplot(subgs[0, i])\n",
" ax.plot(np.sin(np.linspace(0, 2*np.pi, 100)), np.cos(np.linspace(0, 2*np.pi, 100)))\n",
" if(i==0):\n",
" ax.set_ylabel('y')\n",
" ax.set_xlabel('x')\n",
" ax.set_axis_off()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [conda env:si]",
"language": "python",
"name": "conda-env-si-py"
},
"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.12.3"
},
"vscode": {
"interpreter": {
"hash": "7ff29d4050e4d808a8f5383368cb276821067981c5836d1b4532485013aa8e0f"
}
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment