Skip to content

Instantly share code, notes, and snippets.

@olgabot
Created December 11, 2013 00:18
Show Gist options
  • Save olgabot/7902901 to your computer and use it in GitHub Desktop.
Save olgabot/7902901 to your computer and use it in GitHub Desktop.
violin plots
{
"metadata": {
"name": ""
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "code",
"collapsed": false,
"input": [
"import prettyplotlib as ppl\n",
"import numpy as np\n",
"from scipy.stats import gaussian_kde\n",
"import brewer2mpl\n",
"\n",
"set2 = brewer2mpl.get_map('Set2', 'qualitative', 8).mpl_colors\n",
"\n",
"def violinplot(ax, x, ys, bp=False, cut=False, facecolor=set2[0],\n",
" edgecolor=ppl.almost_black,\n",
" alpha=0.3, bw_method=0.05, width=None):\n",
" \"\"\"Make a violin plot of each dataset in the `ys` sequence. `ys` is a\n",
" list of numpy arrays.\n",
" Adapted by: Olga Botvinnik\n",
" # Original Author: Teemu Ikonen <[email protected]>\n",
" # Based on code by Flavio Codeco Coelho,\n",
" # http://pyinsci.blogspot.com/2009/09/violin-plot-with-matplotlib.html\n",
" \"\"\"\n",
" dist = np.max(x) - np.min(x)\n",
" if width is None:\n",
" width = min(0.15 * max(dist, 1.0), 0.4)\n",
" for i, (d, p) in enumerate(zip(ys, x)):\n",
" k = gaussian_kde(d, bw_method=bw_method) #calculates the kernel density\n",
" # k.covariance_factor = 0.1\n",
" s = 0.0\n",
" if not cut:\n",
" s = 1 * np.std(d) #FIXME: magic constant 1\n",
" m = k.dataset.min() - s #lower bound of violin\n",
" M = k.dataset.max() + s #upper bound of violin\n",
" x = np.linspace(m, M, 100) # support for violin\n",
" v = k.evaluate(x) #violin profile (density curve)\n",
" v = width * v / v.max() #scaling the violin to the available space\n",
" if isinstance(facecolor, list):\n",
" # for x0, v0, p0\n",
" ax.fill_betweenx(x, -v + p,\n",
" v + p,\n",
" facecolor=facecolor[i],\n",
" alpha=alpha, edgecolor=edgecolor)\n",
" else:\n",
" ax.fill_betweenx(x, -v + p,\n",
" v + p,\n",
" facecolor=facecolor,\n",
" alpha=alpha, edgecolor=edgecolor)\n",
" if bp:\n",
" ax.boxplot(ys, notch=1, positions=x, vert=1)\n",
" ppl.remove_chartjunk(ax, ['top', 'right'])\n",
" return ax"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"[50:100::10]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"ename": "SyntaxError",
"evalue": "invalid syntax (<ipython-input-4-9d824d02bf48>, line 1)",
"output_type": "pyerr",
"traceback": [
"\u001b[1;36m File \u001b[1;32m\"<ipython-input-4-9d824d02bf48>\"\u001b[1;36m, line \u001b[1;32m1\u001b[0m\n\u001b[1;33m [50:100::10]\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m invalid syntax\n"
]
}
],
"prompt_number": 4
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"n = 5\n",
"x = range(n)\n",
"ys = [np.random.randn(np.random.choice(range(50, 110, 10)))+_ for _ in range(n)]\n",
"\n",
"fig, ax = plt.subplots(1)\n",
"violinplot(ax, x, ys)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 11,
"text": [
"<matplotlib.axes._subplots.AxesSubplot at 0x2aaaacb49fd0>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x1559c990>"
]
}
],
"prompt_number": 11
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Change the bandwidth size (bigger = smoother) with `bw_method` (default `bw_method=0.1`, but you can specify any `bw_method` to http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.gaussian_kde.html#scipy.stats.gaussian_kde:\n",
"\n",
"\n",
"Parameters :\t\n",
"dataset : array_like\n",
"Datapoints to estimate from. In case of univariate data this is a 1-D array, otherwise a 2-D array with shape (# of dims, # of data).\n",
"bw_method : str, scalar or callable, optional\n",
"The method used to calculate the estimator bandwidth. This can be \u2018scott\u2019, \u2018silverman\u2019, a scalar constant or a callable. If a scalar, this will be used directly as kde.factor. If a callable, it should take a gaussian_kde instance as only parameter and return a scalar. If None (default), \u2018scott\u2019 is used. See Notes for more details."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"fig, ax = plt.subplots(1)\n",
"violinplot(ax, x, ys, bw_method=0.5)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 12,
"text": [
"<matplotlib.axes._subplots.AxesSubplot at 0x2aaaacb58c10>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nqf8PMdzA4CxiYP0AAAAASUVORK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x2aaaace82510>"
]
}
],
"prompt_number": 12
},
{
"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