Skip to content

Instantly share code, notes, and snippets.

@elfnor
Last active April 21, 2016 05:11
Show Gist options
  • Save elfnor/997437bb04497f31d9f547daaa03fde0 to your computer and use it in GitHub Desktop.
Save elfnor/997437bb04497f31d9f547daaa03fde0 to your computer and use it in GitHub Desktop.
test
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Random python, pandas, matplotlib notes to self\n",
"## stored as gist"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"I've installed [jupyter-notebook-gist](https://github.com/mozilla/jupyter-notebook-gist) extension to test this as a dumping place for jupyter snippets. This extension adds four buttons to load and save gists to my user account."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Matplotlib"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Legend manipulation"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nS4g/AbpWcur6mc3qAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x77eb7f0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x = np.linspace(0,10,31)\n",
"\n",
"fig = plt.figure()\n",
"ax = fig.add_subplot(1,1,1)\n",
"\n",
"#Plot analytic solution\n",
"ax.plot(x,1*x**2, color='r', label=\"t = 25\")\n",
"ax.plot(x,2*x**2, color='b', label=\"t = 50\")\n",
"ax.plot(x,3*x**2, color='g', label=\"t = 500\")\n",
"\n",
"#Plot simulation\n",
"ax.plot(x,1*x**2, color='r', linestyle='', marker='o')\n",
"ax.plot(x,2*x**2, color='b', linestyle='', marker='o')\n",
"ax.plot(x,3*x**2, color='g', linestyle='', marker='o')\n",
"\n",
"#Get artists and labels for legend and chose which ones to display\n",
"handles, labels = ax.get_legend_handles_labels()\n",
"display = (0,1,2)\n",
"\n",
"#Create custom artists\n",
"simArtist = plt.Line2D((0,1),(0,0), color='k', marker='o', linestyle='')\n",
"anyArtist = plt.Line2D((0,1),(0,0), color='k')\n",
"\n",
"#Create legend from custom artist/label lists\n",
"ax.legend([handle for i,handle in enumerate(handles) if i in display]+[simArtist,anyArtist],\n",
" [label for i,label in enumerate(labels) if i in display]+['Simulation', 'Analytic'],\n",
" loc='center left', bbox_to_anchor=(1, 0.5));"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Pandas"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Numpy"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Scipy"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"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.5.1"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment