Skip to content

Instantly share code, notes, and snippets.

@minrk
Last active February 7, 2017 13:58
Show Gist options
  • Save minrk/4f6ccc5ae1eb95e58107 to your computer and use it in GitHub Desktop.
Save minrk/4f6ccc5ae1eb95e58107 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {},
"cell_type": "markdown",
"source": "# Custom Display Logic"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## Overview"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "As described in the [Rich Output](Rich Output.ipynb) tutorial, the IPython display system can display rich representations of objects in the following formats:\n\n* JavaScript\n* HTML\n* PNG\n* JPEG\n* SVG\n* LaTeX\n* PDF\n\nThis Notebook shows how you can add custom display logic to your own classes, so that they can be displayed using these rich representations. There are two ways of accomplishing this:\n\n1. Implementing special display methods such as `_repr_html_` when you define your class.\n2. Registering a display function for a particular existing class.\n\nThis Notebook describes and illustrates both approaches."
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Import the IPython display functions."
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "from IPython.display import (\n display, display_html, display_png, display_svg\n)",
"execution_count": 1,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Parts of this notebook need the matplotlib inline backend:"
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "%matplotlib inline\nimport numpy as np\nimport matplotlib.pyplot as plt",
"execution_count": 2,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## Special display methods"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "The main idea of the first approach is that you have to implement special display methods when you define your class, one for each representation you want to use. Here is a list of the names of the special methods and the values they must return:\n\n* `_repr_html_`: return raw HTML as a string\n* `_repr_json_`: return a JSONable dict\n* `_repr_jpeg_`: return raw JPEG data\n* `_repr_png_`: return raw PNG data\n* `_repr_svg_`: return raw SVG data as a string\n* `_repr_latex_`: return LaTeX commands in a string surrounded by \"$\"."
},
{
"metadata": {},
"cell_type": "markdown",
"source": "As an illustration, we build a class that holds data generated by sampling a Gaussian distribution with given mean and standard deviation. Here is the definition of the `Gaussian` class, which has a custom PNG and LaTeX representation."
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "from IPython.core.pylabtools import print_figure\nfrom IPython.display import Image, SVG, Math\n\nclass Gaussian(object):\n \"\"\"A simple object holding data sampled from a Gaussian distribution.\n \"\"\"\n def __init__(self, mean=0.0, std=1, size=1000):\n self.data = np.random.normal(mean, std, size)\n self.mean = mean\n self.std = std\n self.size = size\n # For caching plots that may be expensive to compute\n self._png_data = None\n \n def _figure_data(self, format):\n fig, ax = plt.subplots()\n ax.hist(self.data, bins=50)\n ax.set_title(self._repr_latex_())\n ax.set_xlim(-10.0,10.0)\n data = print_figure(fig, format)\n # We MUST close the figure, otherwise IPython's display machinery\n # will pick it up and send it as output, resulting in a double display\n plt.close(fig)\n return data\n \n def _repr_png_(self):\n if self._png_data is None:\n self._png_data = self._figure_data('png')\n return self._png_data\n \n def _repr_latex_(self):\n return r'$\\mathcal{N}(\\mu=%.2g, \\sigma=%.2g),\\ N=%d$' % (self.mean,\n self.std, self.size)",
"execution_count": 3,
"outputs": []
},
{
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"cell_type": "markdown",
"source": "Create an instance of the Gaussian distribution and return it to display the default representation:"
},
{
"metadata": {
"trusted": true,
"collapsed": false,
"slideshow": {
"slide_type": "slide"
}
},
"cell_type": "code",
"source": "x = Gaussian(2.0, 1.0)\nxasdfasdfdsf",
"execution_count": 4,
"outputs": [
{
"execution_count": 4,
"data": {
"text/latex": "$\\mathcal{N}(\\mu=2, \\sigma=1),\\ N=1000$",
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlMAAAGGCAYAAABfWgTpAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGaFJREFUeJzt3XuwrWddH/DvLzlwGrlkIpKzHYEcFY0pKhcFbenoZiiI\nWpq0deJlcIIUpjPKYMfRkmgrZ1pLTSugreJIYfToYJWqmQTLNCFNtpdRbiMgQoxUJxEjZ+MFqAiG\nhPz6x1rnsM8++5y913722mtfPp+ZNVnvs97LL+es8+7vfp/nfZ/q7gAAsD0XLboAAID9TJgCABgg\nTAEADBCmAAAGCFMAAAOEKQCAAcIUAMAAYQoAYIAwBQdcVX3homsAOMiEKdinauLiDdqfUlXvqqqf\nnAapr1lAeQtTVU+oqm9ddB3A4VGmk4H9qap+Lslvdfcb1rX/VJJfSfKuJP+2u18+xxq+I8nnJ3lG\nkpu6+5fmdawL1PDkJN/Z3d+/pu27kry9uz+w2/VcyHlqvTrJk5J8Jsmfd/cvbKcdWJwjiy4A2LYv\nTXJpkjNhqqquSvLr3X1nVX1lkg/N6+BV9cVJHtPdr6qqz0vywap6W3ffM69jblDD9yX5R0k+tu6j\nX0zymiTfvY19fk2SH07y5CRXdPdnqupYkh9P8sgkr+zu392JWqvq0Ul+uLu/arr8u1X1liQPzNLe\n3X81az3AztHNB/vQtHvvrUm+vqouWfPRcpL/M33//CR3zrGMJyX5gSTp7r9M8n+TfPUcj3eO7n51\nkps3aL8/ycOr6pHb2Ofbk/xWkv+X5F9M21aT/HqSa7cTpC5Q69clef+a5fcmedY22oEFcmUK9qcv\nzyQofUWSb0ryq9P2S7r709P3T0/yyll2WlVflOQlSTpJTZtPv+8kb+vuW6btb5ke+7TPzyRQbduM\nx9/Me5P8wyS3zVjDRUk+lcmVqO9N8qbpR4/s7k/tcJ2Py9lX1T6W5EuSfHTGdmCBhCnYn56e5OeT\nHEvyHUl+taoeluTv1qxzSa8ZFDkNCSvd/XXT5Z9O8uPdfffpdbr7T5LcsJUCuvvBJH8w3dc/SfKu\n7n7Phbapqi9J8h+TPDaTq1h3Jvlf3f0zsx5/C/48k6AxU5hK8rQk70jy7iQ/UlVP7e53J3no9Ao7\nWOdlOfvv7NOZdCVmG+3Agujmg/3pUdMrUG9O8qyqujyTu/besWad9Xf6fW3OvnL0dWuD1HZNx/1c\nl+QFm6x3WZKfyWQA9rOS3J7kBaeD1Bx8LMmjt7HdV2UyeP3vkvx0kpdV1ZVJhv+sNvA3+eyVrSS5\nJMlfb6MdWCBXpmCfqapLM/mhmu7+ZFXdnORlSVaT/NSaVR9ct+nzMgkwqaqvSHLXBvte23111kc5\nf/fVv0nyku7+RFVd0d33nqf070nyU9PxTEny95J8cgeOfz6XJPnbLa571rG6+/RVqNdmEqLen+Qn\n5lDnH+fscWaPSfJ7mQTBWdqBBRKmYJ+oqkcleWImjyH4lTUf/Zckv5PkJ9eEgCRZrapHdPfpQPEN\nSU4/uuCbk9xRVc/v7jef3mDW7quqemmSm5IcraqnZxJg7q2qJyb547XdjEkeleng6ar6+0neP+0q\nPGOg+6w2aPvcJKfW1LpRTev/f45kTTdad69W1a8leVZ3/9gO1Lm+1t9IcuOa5acluT7JJ2ZsBxbI\nc6Zgn6iq5yS5Ncl/6O5XrPvsVZmMWfofa9pelOSe7r6jqh6T5AOZDKr+/UzGEj06kysos44pOr3/\nZyb5zdOLmVyReUJ331dVdyV5WXe/dc36x5P80yT3JfmCJK9dH6a2UcNLk1yb5PFJfi7Jq7v7b6af\n/ViS13T3fdPlc2pat6+nZxKQ/jbJy7v7z6ftX57k+d39n+ZRa1W9IMnxTP4M/6S73zhdf6Z2YHG2\nFKam3Qqvz+QOooeSvCjJHyX55SRXJLknk1uGPz63SoFU1WO7+y+2uO5lSb6/u3+oqr49yZd39w/N\nt8Izx74oydd39zwfzbBZDa/v7hfvpZqAg2mrA9B/IslbuvuqTB5k94eZXFq+vbuvTHJHdu4OHOA8\nthqkput+NMlfTR+o+bVJfm1uhZ3rW5K8bRePd5bpVab1V6AWWhNwcG16ZWp6p867u/uL17X/YSa/\n5a1W1VImt1x/2fxKBWY1vRrzkjneMXe+464dq7Wrpg80/f7uvnFd+8JqAg62rYSpJyd5XSbjLZ6c\nyXxf/zrJfd192Zr1/rq7P3eOtQJsavrL3cdPP2ATYN62cjffkUzuGPme7n5XVb0mky6+9Slsw1RW\nVUa4A7uuaqMb/AA2190znUC2Eqb+LMmHuvtd0+VfzSRMrVbVsTXdfB+5QFGz1MQhdeLEiZw4cWLR\nZbBP+L6wVb4rzGI7v4htOgB9OsHnh6rqS6dNz87kWTG3JHnhtO26bDDZKADAQbfVh3a+LMkbp3N/\n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\nmAIAGCBMAQAMEKaAuVk7f97FFz/irLn4RvZlDrfDa3ROR5gHc/MBczPr/HkXOldsNJffQZyHzr4v\n/L0YndMRNmNuPgCAXSZMAQAMEKYAAAYIU8C27exg4KMGFjNs5DtpcDvbZQA6sG2bDQaedQD6rAOP\nD+Jga/seG4A+MkDd4HYSA9ABAHadMAUAMECYAgAYcGTRBQB706c+9am87nWvy4MPPnim7dprr83j\nH//4BVYFsPcIU8CGbr311rz85f81Dz10TZLkM595ez7ykb/KjTe+cpcqOGraGDL+Pfjs9seOXZFT\np+7ZkapgraFuvqp6XlX9YVX9UVW9fKeKAvaGo0e/Ig888Ko88MCr8tBD37TLR78/kzurTr84nEa/\nB5/dfnX13p0sDM7YdpiqqouS/GSSb0jypCTfXlVftlOFcfisrKwsugTgQFpZdAEccCNXpp6R5IPd\nfW93P5Dkl5JcvTNlcRgJU8B8rCy6AA64kTD1BUk+tGb5z6ZtAACHhgHowIYe9rCH5dOfflse/ejn\nJ0nuv/+DefjDv3XBVQHsPdueTqaqvjbJie5+3nT5+iTd3TeuW8/IUQBg35h1OpmRMHVxkruTPDvJ\nh5O8I8m3d/dd29ohAMA+tO1uvu7+TFW9NMltmYy9eoMgBQAcNtu+MgUAwJzm5quqb6mqP6iqz1TV\n09Z9dkNVfbCq7qqq587j+OxfVfWKqvqzqvq96et5i66JvcXDgplFVd1TVe+tqndX1TsWXQ97S1W9\noapWq+r317RdVlW3VdXdVXVrVV262X7mNdHx+5L8syS/sbaxqq5Kcm2Sq5J8Y5LXlvkiONeru/tp\n09f/XnQx7B0eFsw2PJRkubuf2t3PWHQx7Dk/m8n5ZK3rk9ze3VcmuSPJDZvtZC5hqrvv7u4PJlkf\nlK5O8kvd/WB335Pkg5k8/BPWErA5Hw8LZlaV+V04YJ/r7t9O8tF1zVcnOTl9fzLJNZvtZ7e/YOsf\n9HlfPOiTc720qt5TVa/fyuVVDhUPC2ZWneStVfXOqnrJoothX7i8u1eTpLtPJbl8sw22fTdfVb01\nybG1TZl8aX+ou9+83f1y8F3ou5PktUn+fXd3Vf1Iklcn+Ze7XyVwQDyzuz9cVY/NJFTdNb0aAVu1\n6Z16I49GeM42NrsvyePXLD9u2sYhMsN3578nEcxZ674kT1iz7BzCBXX3h6f//YuquimTrmJhigtZ\nrapj3b1aVUtJPrLZBrvRzbd2/MstSb6tqh5eVV+Y5ImZPOwTkiTTL+5p/zzJHyyqFvakdyZ5YlVd\nUVUPT/JtmZxX4BxV9TlV9cjp+0ckeW6cUzhX5dys8sLp++uS3LzZDuYyN19VXZPkvyX5vCS/XlXv\n6e5v7O4PVNWbknwgyQNJvrs96Iqz/eeqekomd+Dck+RfLbYc9hIPC2ZGx5LcNJ3W7EiSN3b3bQuu\niT2kqn4xyXKSx1TVnyZ5RZIfTfI/q+pFSe7N5CkEF96PLAMAsH1uFwUAGCBMAQAMEKYAAAYIUwAA\nA4QpAIABwhQAwABhCgBggDAFADDg/wMDJzKwjZscMgAAAABJRU5ErkJggg==\n",
"text/plain": "<__main__.Gaussian at 0x10c1f9390>"
},
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"cell_type": "markdown",
"source": "You can also pass the object to the `display` function to display the default representation:"
},
{
"metadata": {
"trusted": true,
"collapsed": false,
"slideshow": {
"slide_type": "skip"
}
},
"cell_type": "code",
"source": "display(x)",
"execution_count": 5,
"outputs": [
{
"metadata": {},
"data": {
"text/latex": "$\\mathcal{N}(\\mu=2, \\sigma=1),\\ N=1000$",
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlMAAAGGCAYAAABfWgTpAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGaFJREFUeJzt3XuwrWddH/DvLzlwGrlkIpKzHYEcFY0pKhcFbenoZiiI\nWpq0deJlcIIUpjPKYMfRkmgrZ1pLTSugreJIYfToYJWqmQTLNCFNtpdRbiMgQoxUJxEjZ+MFqAiG\nhPz6x1rnsM8++5y913722mtfPp+ZNVnvs97LL+es8+7vfp/nfZ/q7gAAsD0XLboAAID9TJgCABgg\nTAEADBCmAAAGCFMAAAOEKQCAAcIUAMAAYQoAYIAwBQdcVX3homsAOMiEKdinauLiDdqfUlXvqqqf\nnAapr1lAeQtTVU+oqm9ddB3A4VGmk4H9qap+Lslvdfcb1rX/VJJfSfKuJP+2u18+xxq+I8nnJ3lG\nkpu6+5fmdawL1PDkJN/Z3d+/pu27kry9uz+w2/VcyHlqvTrJk5J8Jsmfd/cvbKcdWJwjiy4A2LYv\nTXJpkjNhqqquSvLr3X1nVX1lkg/N6+BV9cVJHtPdr6qqz0vywap6W3ffM69jblDD9yX5R0k+tu6j\nX0zymiTfvY19fk2SH07y5CRXdPdnqupYkh9P8sgkr+zu392JWqvq0Ul+uLu/arr8u1X1liQPzNLe\n3X81az3AztHNB/vQtHvvrUm+vqouWfPRcpL/M33//CR3zrGMJyX5gSTp7r9M8n+TfPUcj3eO7n51\nkps3aL8/ycOr6pHb2Ofbk/xWkv+X5F9M21aT/HqSa7cTpC5Q69clef+a5fcmedY22oEFcmUK9qcv\nzyQofUWSb0ryq9P2S7r709P3T0/yyll2WlVflOQlSTpJTZtPv+8kb+vuW6btb5ke+7TPzyRQbduM\nx9/Me5P8wyS3zVjDRUk+lcmVqO9N8qbpR4/s7k/tcJ2Py9lX1T6W5EuSfHTGdmCBhCnYn56e5OeT\nHEvyHUl+taoeluTv1qxzSa8ZFDkNCSvd/XXT5Z9O8uPdfffpdbr7T5LcsJUCuvvBJH8w3dc/SfKu\n7n7Phbapqi9J8h+TPDaTq1h3Jvlf3f0zsx5/C/48k6AxU5hK8rQk70jy7iQ/UlVP7e53J3no9Ao7\nWOdlOfvv7NOZdCVmG+3Agujmg/3pUdMrUG9O8qyqujyTu/besWad9Xf6fW3OvnL0dWuD1HZNx/1c\nl+QFm6x3WZKfyWQA9rOS3J7kBaeD1Bx8LMmjt7HdV2UyeP3vkvx0kpdV1ZVJhv+sNvA3+eyVrSS5\nJMlfb6MdWCBXpmCfqapLM/mhmu7+ZFXdnORlSVaT/NSaVR9ct+nzMgkwqaqvSHLXBvte23111kc5\nf/fVv0nyku7+RFVd0d33nqf070nyU9PxTEny95J8cgeOfz6XJPnbLa571rG6+/RVqNdmEqLen+Qn\n5lDnH+fscWaPSfJ7mQTBWdqBBRKmYJ+oqkcleWImjyH4lTUf/Zckv5PkJ9eEgCRZrapHdPfpQPEN\nSU4/uuCbk9xRVc/v7jef3mDW7quqemmSm5IcraqnZxJg7q2qJyb547XdjEkeleng6ar6+0neP+0q\nPGOg+6w2aPvcJKfW1LpRTev/f45kTTdad69W1a8leVZ3/9gO1Lm+1t9IcuOa5acluT7JJ2ZsBxbI\nc6Zgn6iq5yS5Ncl/6O5XrPvsVZmMWfofa9pelOSe7r6jqh6T5AOZDKr+/UzGEj06kysos44pOr3/\nZyb5zdOLmVyReUJ331dVdyV5WXe/dc36x5P80yT3JfmCJK9dH6a2UcNLk1yb5PFJfi7Jq7v7b6af\n/ViS13T3fdPlc2pat6+nZxKQ/jbJy7v7z6ftX57k+d39n+ZRa1W9IMnxTP4M/6S73zhdf6Z2YHG2\nFKam3Qqvz+QOooeSvCjJHyX55SRXJLknk1uGPz63SoFU1WO7+y+2uO5lSb6/u3+oqr49yZd39w/N\nt8Izx74oydd39zwfzbBZDa/v7hfvpZqAg2mrA9B/IslbuvuqTB5k94eZXFq+vbuvTHJHdu4OHOA8\nthqkput+NMlfTR+o+bVJfm1uhZ3rW5K8bRePd5bpVab1V6AWWhNwcG16ZWp6p867u/uL17X/YSa/\n5a1W1VImt1x/2fxKBWY1vRrzkjneMXe+464dq7Wrpg80/f7uvnFd+8JqAg62rYSpJyd5XSbjLZ6c\nyXxf/zrJfd192Zr1/rq7P3eOtQJsavrL3cdPP2ATYN62cjffkUzuGPme7n5XVb0mky6+9Slsw1RW\nVUa4A7uuaqMb/AA2190znUC2Eqb+LMmHuvtd0+VfzSRMrVbVsTXdfB+5QFGz1MQhdeLEiZw4cWLR\nZbBP+L6wVb4rzGI7v4htOgB9OsHnh6rqS6dNz87kWTG3JHnhtO26bDDZKADAQbfVh3a+LMkbp3N/\n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\nmAIAGCBMAQAMEKaAuVk7f97FFz/irLn4RvZlDrfDa3ROR5gHc/MBczPr/HkXOldsNJffQZyHzr4v\n/L0YndMRNmNuPgCAXSZMAQAMEKYAAAYIU8C27exg4KMGFjNs5DtpcDvbZQA6sG2bDQaedQD6rAOP\nD+Jga/seG4A+MkDd4HYSA9ABAHadMAUAMECYAgAYcGTRBQB706c+9am87nWvy4MPPnim7dprr83j\nH//4BVYFsPcIU8CGbr311rz85f81Dz10TZLkM595ez7ykb/KjTe+cpcqOGraGDL+Pfjs9seOXZFT\np+7ZkapgraFuvqp6XlX9YVX9UVW9fKeKAvaGo0e/Ig888Ko88MCr8tBD37TLR78/kzurTr84nEa/\nB5/dfnX13p0sDM7YdpiqqouS/GSSb0jypCTfXlVftlOFcfisrKwsugTgQFpZdAEccCNXpp6R5IPd\nfW93P5Dkl5JcvTNlcRgJU8B8rCy6AA64kTD1BUk+tGb5z6ZtAACHhgHowIYe9rCH5dOfflse/ejn\nJ0nuv/+DefjDv3XBVQHsPdueTqaqvjbJie5+3nT5+iTd3TeuW8/IUQBg35h1OpmRMHVxkruTPDvJ\nh5O8I8m3d/dd29ohAMA+tO1uvu7+TFW9NMltmYy9eoMgBQAcNtu+MgUAwJzm5quqb6mqP6iqz1TV\n09Z9dkNVfbCq7qqq587j+OxfVfWKqvqzqvq96et5i66JvcXDgplFVd1TVe+tqndX1TsWXQ97S1W9\noapWq+r317RdVlW3VdXdVXVrVV262X7mNdHx+5L8syS/sbaxqq5Kcm2Sq5J8Y5LXlvkiONeru/tp\n09f/XnQx7B0eFsw2PJRkubuf2t3PWHQx7Dk/m8n5ZK3rk9ze3VcmuSPJDZvtZC5hqrvv7u4PJlkf\nlK5O8kvd/WB335Pkg5k8/BPWErA5Hw8LZlaV+V04YJ/r7t9O8tF1zVcnOTl9fzLJNZvtZ7e/YOsf\n9HlfPOiTc720qt5TVa/fyuVVDhUPC2ZWneStVfXOqnrJoothX7i8u1eTpLtPJbl8sw22fTdfVb01\nybG1TZl8aX+ou9+83f1y8F3ou5PktUn+fXd3Vf1Iklcn+Ze7XyVwQDyzuz9cVY/NJFTdNb0aAVu1\n6Z16I49GeM42NrsvyePXLD9u2sYhMsN3578nEcxZ674kT1iz7BzCBXX3h6f//YuquimTrmJhigtZ\nrapj3b1aVUtJPrLZBrvRzbd2/MstSb6tqh5eVV+Y5ImZPOwTkiTTL+5p/zzJHyyqFvakdyZ5YlVd\nUVUPT/JtmZxX4BxV9TlV9cjp+0ckeW6cUzhX5dys8sLp++uS3LzZDuYyN19VXZPkvyX5vCS/XlXv\n6e5v7O4PVNWbknwgyQNJvrs96Iqz/eeqekomd+Dck+RfLbYc9hIPC2ZGx5LcNJ3W7EiSN3b3bQuu\niT2kqn4xyXKSx1TVnyZ5RZIfTfI/q+pFSe7N5CkEF96PLAMAsH1uFwUAGCBMAQAMEKYAAAYIUwAA\nA4QpAIABwhQAwABhCgBggDAFADDg/wMDJzKwjZscMgAAAABJRU5ErkJggg==\n",
"text/plain": "<__main__.Gaussian at 0x10c1f9390>"
},
"output_type": "display_data"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Use `display_png` to view the PNG representation:"
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "display_png(x)",
"execution_count": 6,
"outputs": [
{
"metadata": {},
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlMAAAGGCAYAAABfWgTpAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGaFJREFUeJzt3XuwrWddH/DvLzlwGrlkIpKzHYEcFY0pKhcFbenoZiiI\nWpq0deJlcIIUpjPKYMfRkmgrZ1pLTSugreJIYfToYJWqmQTLNCFNtpdRbiMgQoxUJxEjZ+MFqAiG\nhPz6x1rnsM8++5y913722mtfPp+ZNVnvs97LL+es8+7vfp/nfZ/q7gAAsD0XLboAAID9TJgCABgg\nTAEADBCmAAAGCFMAAAOEKQCAAcIUAMAAYQoAYIAwBQdcVX3homsAOMiEKdinauLiDdqfUlXvqqqf\nnAapr1lAeQtTVU+oqm9ddB3A4VGmk4H9qap+Lslvdfcb1rX/VJJfSfKuJP+2u18+xxq+I8nnJ3lG\nkpu6+5fmdawL1PDkJN/Z3d+/pu27kry9uz+w2/VcyHlqvTrJk5J8Jsmfd/cvbKcdWJwjiy4A2LYv\nTXJpkjNhqqquSvLr3X1nVX1lkg/N6+BV9cVJHtPdr6qqz0vywap6W3ffM69jblDD9yX5R0k+tu6j\nX0zymiTfvY19fk2SH07y5CRXdPdnqupYkh9P8sgkr+zu392JWqvq0Ul+uLu/arr8u1X1liQPzNLe\n3X81az3AztHNB/vQtHvvrUm+vqouWfPRcpL/M33//CR3zrGMJyX5gSTp7r9M8n+TfPUcj3eO7n51\nkps3aL8/ycOr6pHb2Ofbk/xWkv+X5F9M21aT/HqSa7cTpC5Q69clef+a5fcmedY22oEFcmUK9qcv\nzyQofUWSb0ryq9P2S7r709P3T0/yyll2WlVflOQlSTpJTZtPv+8kb+vuW6btb5ke+7TPzyRQbduM\nx9/Me5P8wyS3zVjDRUk+lcmVqO9N8qbpR4/s7k/tcJ2Py9lX1T6W5EuSfHTGdmCBhCnYn56e5OeT\nHEvyHUl+taoeluTv1qxzSa8ZFDkNCSvd/XXT5Z9O8uPdfffpdbr7T5LcsJUCuvvBJH8w3dc/SfKu\n7n7Phbapqi9J8h+TPDaTq1h3Jvlf3f0zsx5/C/48k6AxU5hK8rQk70jy7iQ/UlVP7e53J3no9Ao7\nWOdlOfvv7NOZdCVmG+3Agujmg/3pUdMrUG9O8qyqujyTu/besWad9Xf6fW3OvnL0dWuD1HZNx/1c\nl+QFm6x3WZKfyWQA9rOS3J7kBaeD1Bx8LMmjt7HdV2UyeP3vkvx0kpdV1ZVJhv+sNvA3+eyVrSS5\nJMlfb6MdWCBXpmCfqapLM/mhmu7+ZFXdnORlSVaT/NSaVR9ct+nzMgkwqaqvSHLXBvte23111kc5\nf/fVv0nyku7+RFVd0d33nqf070nyU9PxTEny95J8cgeOfz6XJPnbLa571rG6+/RVqNdmEqLen+Qn\n5lDnH+fscWaPSfJ7mQTBWdqBBRKmYJ+oqkcleWImjyH4lTUf/Zckv5PkJ9eEgCRZrapHdPfpQPEN\nSU4/uuCbk9xRVc/v7jef3mDW7quqemmSm5IcraqnZxJg7q2qJyb547XdjEkeleng6ar6+0neP+0q\nPGOg+6w2aPvcJKfW1LpRTev/f45kTTdad69W1a8leVZ3/9gO1Lm+1t9IcuOa5acluT7JJ2ZsBxbI\nc6Zgn6iq5yS5Ncl/6O5XrPvsVZmMWfofa9pelOSe7r6jqh6T5AOZDKr+/UzGEj06kysos44pOr3/\nZyb5zdOLmVyReUJ331dVdyV5WXe/dc36x5P80yT3JfmCJK9dH6a2UcNLk1yb5PFJfi7Jq7v7b6af\n/ViS13T3fdPlc2pat6+nZxKQ/jbJy7v7z6ftX57k+d39n+ZRa1W9IMnxTP4M/6S73zhdf6Z2YHG2\nFKam3Qqvz+QOooeSvCjJHyX55SRXJLknk1uGPz63SoFU1WO7+y+2uO5lSb6/u3+oqr49yZd39w/N\nt8Izx74oydd39zwfzbBZDa/v7hfvpZqAg2mrA9B/IslbuvuqTB5k94eZXFq+vbuvTHJHdu4OHOA8\nthqkput+NMlfTR+o+bVJfm1uhZ3rW5K8bRePd5bpVab1V6AWWhNwcG16ZWp6p867u/uL17X/YSa/\n5a1W1VImt1x/2fxKBWY1vRrzkjneMXe+464dq7Wrpg80/f7uvnFd+8JqAg62rYSpJyd5XSbjLZ6c\nyXxf/zrJfd192Zr1/rq7P3eOtQJsavrL3cdPP2ATYN62cjffkUzuGPme7n5XVb0mky6+9Slsw1RW\nVUa4A7uuaqMb/AA2190znUC2Eqb+LMmHuvtd0+VfzSRMrVbVsTXdfB+5QFGz1MQhdeLEiZw4cWLR\nZbBP+L6wVb4rzGI7v4htOgB9OsHnh6rqS6dNz87kWTG3JHnhtO26bDDZKADAQbfVh3a+LMkbp3N/\n/UmS78pkqoo3TZ9lc28mz08BADhUthSmuvu9mUysut4/3tlyOMyWl5cXXQL7iO8LW+W7wrzN/Qno\nVXWh2RsAAPaMqpp5APpWH9oJAMAGhCkAgAHCFADAAGEKAGCAMAUAMECYAliQpaXjqaozr6Wl44su\nCdgGj0YAWJDJtBVrz49l+i1YMI9GAADYZcIUAMAAYQoAYIAwBQAwQJgCABggTAEADBCmAAAGCFMA\nAAOEKQCAAcIUAMAAYQpgzzh61lx9F1/8CHP3wT5gbj6ABdlobr7Nlp1PYb7MzQcAsMuEKQCAAcIU\nAMAAYQoAYIAwBQAwQJgCABggTAEADBCmAAAGCFMAAAOEKYB9amnpuOlmYA8wnQzAgoxOJ7PR9s63\nMMZ0MgAAu0yYAgAYIEwBAAwQpgAABghTAAADhCkAgAHCFADAAGEKAGCAMAUAMECYAgAYIEwBAAwQ\npgAABghTAAADhCkAgAHCFADAAGEKAGCAMAWwi5aWjqeqUlXb2PromW23tz0wD9Xdm69UdU+Sjyd5\nKMkD3f2MqrosyS8nuSLJPUmu7e6Pb7Btb+UYAIfBJASdPieufb8zy863MKaq0t0z/bay1StTDyVZ\n7u6ndvczpm3XJ7m9u69MckeSG2Y5MADAQbDVMFUbrHt1kpPT9yeTXLNTRQEA7BdbDVOd5K1V9c6q\nevG07Vh3ryZJd59Kcvk8CgQA2MuObHG9Z3b3h6vqsUluq6q7c3ZHfTZYPuPEiRNn3i8vL2d5eXnG\nMgH2pqWl41ldvffM8rFjV+TUqXsWVxAwk5WVlaysrAztY0sD0M/aoOoVST6R5MWZjKNaraqlJHd2\n91UbrG8AOnBgnT2gPNlsELgB6LC3zWUAelV9TlU9cvr+EUmem+R9SW5J8sLpatcluXmmagEADoCt\ndPMdS3JTVfV0/Td2921V9a4kb6qqFyW5N8m1c6wTAGBPmrmbb+YD6OYDDjDdfHCwzPM5UwAAbECY\nAjgwPjvdzNLS8UUXA4eGbj6AAXutm2/tvp17YXa6+QAAdpkwBQAwQJgCABggTAEADBCmAOZoaen4\nmTvsJoPPgYPG3XwAAza7m2+jz93NB3uXu/kAAHaZMAUAMECYAgAYIEwBAAwQpgAABghTAAADhCkA\ngAHCFADAAGEKAGCAMAVwCKyf1mZp6fiiS4IDw3QyAAP2y3Qym9UJTJhOBgBglwlTAAADhCkAgAHC\nFADAgCOLLgDgYDk6HewNHBbCFMCOuj/n3mEHHGS6+QAABghTAAADhCkAgAHCFADAAGEKAGCAMAUA\nMECYAgAYIEwBAAwQpgAABghTAAADhCkAgAHCFADAAGEKAGCAMAUAMECYAgAYIEwBAAwQpgAABghT\nAAADhCkAgAHCFADAAGEKAGCAMAUAMECYAgAYsOUwVVUXVdXvVdUt0+XLquq2qrq7qm6tqkvnVyYA\nwN40y5Wp703ygTXL1ye5vbuvTHJHkht2sjAAgP1gS2Gqqh6X5JuSvH5N89VJTk7fn0xyzc6WBgCw\n9231ytRrkvxAkl7Tdqy7V5Oku08luXyHawMA2POObLZCVX1zktXufk9VLV9g1T7fBydOnDjzfnl5\nOcvLF9oNAMDuWFlZycrKytA+qvu8GWiyQtUrk7wgyYNJLknyqCQ3JfnqJMvdvVpVS0nu7O6rNti+\nNzsGwH5VVTn7d8lZlke23Xzfa8+9G9Xp3Aznqqp0d82yzabdfN39g939hO7+oiTfluSO7v7OJG9O\n8sLpatcluXnGegEA9r2R50z9aJLnVNXdSZ49XQYAOFQ27eYbPoBuPuAA080HB8tcuvkAADg/YQoA\nYIAwBQAwQJgCABggTAEADBCmAAAGCFMAM1haOp6qOvMC8JwpgBmMPVdq/bLnTMFe4zlTAAC7TJgC\nABggTAEADBCmAAAGCFMAAAOEKQCAAcIUAMAAYQoAYIAwBQAwQJgCABggTAEADBCmAAAGCFMAAAOE\nKQCAAcIUAMAAYQoAYMCRRRcAwDwcTVUtugg4FIQpgAPp/iS9ZlmwgnnRzQcAMECYAgAYIEwBAAwQ\npgAOpckA9dOvpaXjiy4I9q3q7s3XGjlAVc/7GAC7ZXKH3PqB3dtd3sl9je/buRom/8a7e6Y7NlyZ\nAgAYIEwBAAwQpgAABghTAAADhCkAgAHCFADAAGEKAGCAMAUAMECYAgAYIEwBAAwQpgAABghTAAAD\nhCkAgAHCFADAAGEKAGCAMAUAMECYAgAYsGmYqqqjVfX2qnp3Vb2vql4xbb+sqm6rqrur6taqunT+\n5QIA7C2bhqnuvj/Js7r7qUmekuQbq+oZSa5Pcnt3X5nkjiQ3zLVSAIA9aEvdfN39yenbo0mOJOkk\nVyc5OW0/meSaHa8OAGCP21KYqqqLqurdSU4leWt3vzPJse5eTZLuPpXk8vmVCQCwNx3Zykrd/VCS\np1bVo5PcVFVPyuTq1FmrnW/7EydOnHm/vLyc5eXlmQsFmJelpeNZXb33zPKxY1fk1Kl7FlcQsGtW\nVlaysrIytI/qPm8G2niDqn+X5JNJXpxkubtXq2opyZ3dfdUG6/esxwDYTVWVs38frJzvvLXRuttf\n3sl9je/buRom/8a7u2bZZit3833e6Tv1quqSJM9JcleSW5K8cLradUlunqlaAIADYCvdfJ+f5GRV\nXZRJ+Prl7n5LVb0tyZuq6kVJ7k1y7RzrBADYk2bu5pv5ALr5gD1ON99k2bka5tTNBwDA+QlTAAAD\nhCkAgAHCFADAAGEKAGCAMAUAMECYAgAYIEwBkORoqurMa2np+KILgn1jSxMdA3DQ3Z+1D/FcXZ3p\nmYVwqLkyBQAwQJgCABggTAEADBCmAAAGCFMAF7C0dPysu9wA1qvu3nytkQNU9byPATBiEpLWnqcq\np89bG322c8t7e9/O3RxGVZXunuk3J1emAAAGCFMAAAOEKQCAAcIUABswvQxslelkANiA6WVgq1yZ\nAgAYIEwBAAwQpgAABghTAAADhCkAgAHCFADAAGEKAGCAMAUAMECYAgAYIEwBAAwwnQzAOSbz0gFs\nhStTAOc4PS9db7YigDAFADBCmAIAGCBMAQAMEKYAAAYIUwAAA4QpAIABwhQAwABhCgBggDAFADBA\nmAIAGCBMAQAMEKYAAAYIUwAAA4QpAIABwhQAwABhCoAtOJqqSlVlaen4oouBPWXTMFVVj6uqO6rq\n/VX1vqp62bT9sqq6rarurqpbq+rS+ZcLwGLcn6STdFZX7110MbCnbOXK1INJvq+7n5TkHyT5nqr6\nsiTXJ7m9u69MckeSG+ZXJgDA3rRpmOruU939nun7TyS5K8njklyd5OR0tZNJrplXkQAAe9VMY6aq\n6niSpyR5W5Jj3b2aTAJXkst3ujgAgL1uy2Gqqh6Z5FeSfO/0ClWvW2X9MgDAgXdkKytV1ZFMgtQv\ndPfN0+bVqjrW3atVtZTkI+fb/sSJE2feLy8vZ3l5edsFA7Bokzv7Tjt27IqcOnXP4sqBASsrK1lZ\nWRnaR3VvfkGpqn4+yV929/etabsxyV93941V9fIkl3X39Rts21s5BsCiTILB2vPU2uULfTa6fHD2\n7TzPQVFV6e7afM0122z2D6CqnpnkN5O8L6fvi01+MMk7krwpyeOT3Jvk2u7+2AbbC1PAniZMje/b\neZ6DYi5hapQwBex1wtT4vp3nOSi2E6Y8AR0AYIAwBQAwQJgCABggTAEADBCmAAAGCFMAAAOEKQCA\nAcIUcOAtLR1PVZ15XXzxI85aZtTRs/48l5aOL7og2FUe2gkceBd+KOdmywfnwZq7uW/nffYrD+0E\nANhlwhQAwABhCgBggDAFADBAmAIAGCBMAQAMEKYAAAYIUwAAA4QpAIABwhQAwABhCtj31s+9Z244\nYDeZmw/Y9zaae2/tecfcfLu/b+d99itz8wEA7DJhCgBggDAFADBAmAIAGCBMAQAMEKYAAAYIUwAA\nA4QpAIABwhQAwABhCoC5Mt0PB53pZIB9z3Qye2/fm/35+7nAXmU6GQCAXSZMAQAMEKYAAAYIUwAA\nA4QpAIABwhQAwABhCgBggDAFADBAmAIAGCBMAQAMEKYAAAYIUwAAA4QpAIABwhQAwABhCgBggDAF\nADBAmAIAGLBpmKqqN1TValX9/pq2y6rqtqq6u6purapL51smAMDetJUrUz+b5BvWtV2f5PbuvjLJ\nHUlu2OnCAAD2g03DVHf/dpKPrmu+OsnJ6fuTSa7Z4boAAPaF7Y6Zury7V5Oku08luXznSgIA2D+O\n7NB++kIfnjhx4sz75eXlLC8v79BhAQC2b2VlJSsrK0P7qO4L5qDJSlVXJHlzd3/ldPmuJMvdvVpV\nS0nu7O6rzrNtb+UYANtVVTn7d7rK2vPORp9vfXlk28O7783+/P1cYK+qqnR3zbLNVrv5avo67ZYk\nL5y+vy7JzbMcFADgoNjKoxF+McnvJPnSqvrTqvquJD+a5DlVdXeSZ0+XAQAOnS118w0dQDcfMGe6\n+fbevnXzsV/Ns5sPAIAN7NTdfAAwdXR6NQoOB2EKgB12f87tBoSDSzcfAMAAYQoAYIAwBQAwQJgC\nABggTAEADBCmAAAGCFMAAAOEKQCAAcIUAMAAYQoAYIAwBRxAk7nhTr/Ya87++1laOn7mk6Wl4+f9\nDPaq6u7N1xo5QFXP+xjA4TYJTOvngtupZfvejX2f/jmx0d+lnyHspqpKd8/0W5grUwAAA4QpAIAB\nwhQAwABhCgBggDAFADBAmAIAGCBMAQAMEKYAAAYIUwAAA4QpYCFGpw1Zuz373VF/l+xrppMBFmJ0\n2pCzt99fU6fY92z79jOE3WQ6GQCAXSZMAQAMEKYAAAYIUwAAA4QpAIABwhQAwABhCgBggDAFADBA\nmAIAGCBMAQAMEKaAuVk7f97FFz/irLn4RvZlDrfDa3ROR5gHc/MBczPr/HkXOldsNJffQZyHzr4v\n/L0YndMRNmNuPgCAXSZMAQAMEKYAAAYIU8C27exg4KMGFjNs5DtpcDvbZQA6sG2bDQaedQD6rAOP\nD+Jga/seG4A+MkDd4HYSA9ABAHadMAUAMECYAgAYcGTRBQB706c+9am87nWvy4MPPnim7dprr83j\nH//4BVYFsPcIU8CGbr311rz85f81Dz10TZLkM595ez7ykb/KjTe+cpcqOGraGDL+Pfjs9seOXZFT\np+7ZkapgraFuvqp6XlX9YVX9UVW9fKeKAvaGo0e/Ig888Ko88MCr8tBD37TLR78/kzurTr84nEa/\nB5/dfnX13p0sDM7YdpiqqouS/GSSb0jypCTfXlVftlOFcfisrKwsugTgQFpZdAEccCNXpp6R5IPd\nfW93P5Dkl5JcvTNlcRgJU8B8rCy6AA64kTD1BUk+tGb5z6ZtAACHhgHowIYe9rCH5dOfflse/ejn\nJ0nuv/+DefjDv3XBVQHsPdueTqaqvjbJie5+3nT5+iTd3TeuW8/IUQBg35h1OpmRMHVxkruTPDvJ\nh5O8I8m3d/dd29ohAMA+tO1uvu7+TFW9NMltmYy9eoMgBQAcNtu+MgUAwJzm5quqb6mqP6iqz1TV\n09Z9dkNVfbCq7qqq587j+OxfVfWKqvqzqvq96et5i66JvcXDgplFVd1TVe+tqndX1TsWXQ97S1W9\noapWq+r317RdVlW3VdXdVXVrVV262X7mNdHx+5L8syS/sbaxqq5Kcm2Sq5J8Y5LXlvkiONeru/tp\n09f/XnQx7B0eFsw2PJRkubuf2t3PWHQx7Dk/m8n5ZK3rk9ze3VcmuSPJDZvtZC5hqrvv7u4PJlkf\nlK5O8kvd/WB335Pkg5k8/BPWErA5Hw8LZlaV+V04YJ/r7t9O8tF1zVcnOTl9fzLJNZvtZ7e/YOsf\n9HlfPOiTc720qt5TVa/fyuVVDhUPC2ZWneStVfXOqnrJoothX7i8u1eTpLtPJbl8sw22fTdfVb01\nybG1TZl8aX+ou9+83f1y8F3ou5PktUn+fXd3Vf1Iklcn+Ze7XyVwQDyzuz9cVY/NJFTdNb0aAVu1\n6Z16I49GeM42NrsvyePXLD9u2sYhMsN3578nEcxZ674kT1iz7BzCBXX3h6f//YuquimTrmJhigtZ\nrapj3b1aVUtJPrLZBrvRzbd2/MstSb6tqh5eVV+Y5ImZPOwTkiTTL+5p/zzJHyyqFvakdyZ5YlVd\nUVUPT/JtmZxX4BxV9TlV9cjp+0ckeW6cUzhX5dys8sLp++uS3LzZDuYyN19VXZPkvyX5vCS/XlXv\n6e5v7O4PVNWbknwgyQNJvrs96Iqz/eeqekomd+Dck+RfLbYc9hIPC2ZGx5LcNJ3W7EiSN3b3bQuu\niT2kqn4xyXKSx1TVnyZ5RZIfTfI/q+pFSe7N5CkEF96PLAMAsH1uFwUAGCBMAQAMEKYAAAYIUwAA\nA4QpAIABwhQAwABhCgBggDAFADDg/wMDJzKwjZscMgAAAABJRU5ErkJggg==\n"
},
"output_type": "display_data"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "<div class=\"alert alert-success\">\nIt is important to note a subtle different between <code>display</code> and <code>display_png</code>. The former computes <em>all</em> representations of the object, and lets the notebook UI decide which to display. The later only computes the PNG representation.\n</div>"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Create a new Gaussian with different parameters:"
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "x2 = Gaussian(0, 2, 2000)\nx2",
"execution_count": 7,
"outputs": [
{
"execution_count": 7,
"data": {
"text/latex": "$\\mathcal{N}(\\mu=0, \\sigma=2),\\ N=2000$",
"image/png": "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\nAElFTkSuQmCC\n",
"text/plain": "<__main__.Gaussian at 0x10ed71390>"
},
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "You can then compare the two Gaussians by displaying their histograms:"
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "display_png(x)\ndisplay_png(x2)",
"execution_count": 8,
"outputs": [
{
"metadata": {},
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlMAAAGGCAYAAABfWgTpAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGaFJREFUeJzt3XuwrWddH/DvLzlwGrlkIpKzHYEcFY0pKhcFbenoZiiI\nWpq0deJlcIIUpjPKYMfRkmgrZ1pLTSugreJIYfToYJWqmQTLNCFNtpdRbiMgQoxUJxEjZ+MFqAiG\nhPz6x1rnsM8++5y913722mtfPp+ZNVnvs97LL+es8+7vfp/nfZ/q7gAAsD0XLboAAID9TJgCABgg\nTAEADBCmAAAGCFMAAAOEKQCAAcIUAMAAYQoAYIAwBQdcVX3homsAOMiEKdinauLiDdqfUlXvqqqf\nnAapr1lAeQtTVU+oqm9ddB3A4VGmk4H9qap+Lslvdfcb1rX/VJJfSfKuJP+2u18+xxq+I8nnJ3lG\nkpu6+5fmdawL1PDkJN/Z3d+/pu27kry9uz+w2/VcyHlqvTrJk5J8Jsmfd/cvbKcdWJwjiy4A2LYv\nTXJpkjNhqqquSvLr3X1nVX1lkg/N6+BV9cVJHtPdr6qqz0vywap6W3ffM69jblDD9yX5R0k+tu6j\nX0zymiTfvY19fk2SH07y5CRXdPdnqupYkh9P8sgkr+zu392JWqvq0Ul+uLu/arr8u1X1liQPzNLe\n3X81az3AztHNB/vQtHvvrUm+vqouWfPRcpL/M33//CR3zrGMJyX5gSTp7r9M8n+TfPUcj3eO7n51\nkps3aL8/ycOr6pHb2Ofbk/xWkv+X5F9M21aT/HqSa7cTpC5Q69clef+a5fcmedY22oEFcmUK9qcv\nzyQofUWSb0ryq9P2S7r709P3T0/yyll2WlVflOQlSTpJTZtPv+8kb+vuW6btb5ke+7TPzyRQbduM\nx9/Me5P8wyS3zVjDRUk+lcmVqO9N8qbpR4/s7k/tcJ2Py9lX1T6W5EuSfHTGdmCBhCnYn56e5OeT\nHEvyHUl+taoeluTv1qxzSa8ZFDkNCSvd/XXT5Z9O8uPdfffpdbr7T5LcsJUCuvvBJH8w3dc/SfKu\n7n7Phbapqi9J8h+TPDaTq1h3Jvlf3f0zsx5/C/48k6AxU5hK8rQk70jy7iQ/UlVP7e53J3no9Ao7\nWOdlOfvv7NOZdCVmG+3Agujmg/3pUdMrUG9O8qyqujyTu/besWad9Xf6fW3OvnL0dWuD1HZNx/1c\nl+QFm6x3WZKfyWQA9rOS3J7kBaeD1Bx8LMmjt7HdV2UyeP3vkvx0kpdV1ZVJhv+sNvA3+eyVrSS5\nJMlfb6MdWCBXpmCfqapLM/mhmu7+ZFXdnORlSVaT/NSaVR9ct+nzMgkwqaqvSHLXBvte23111kc5\nf/fVv0nyku7+RFVd0d33nqf070nyU9PxTEny95J8cgeOfz6XJPnbLa571rG6+/RVqNdmEqLen+Qn\n5lDnH+fscWaPSfJ7mQTBWdqBBRKmYJ+oqkcleWImjyH4lTUf/Zckv5PkJ9eEgCRZrapHdPfpQPEN\nSU4/uuCbk9xRVc/v7jef3mDW7quqemmSm5IcraqnZxJg7q2qJyb547XdjEkeleng6ar6+0neP+0q\nPGOg+6w2aPvcJKfW1LpRTev/f45kTTdad69W1a8leVZ3/9gO1Lm+1t9IcuOa5acluT7JJ2ZsBxbI\nc6Zgn6iq5yS5Ncl/6O5XrPvsVZmMWfofa9pelOSe7r6jqh6T5AOZDKr+/UzGEj06kysos44pOr3/\nZyb5zdOLmVyReUJ331dVdyV5WXe/dc36x5P80yT3JfmCJK9dH6a2UcNLk1yb5PFJfi7Jq7v7b6af\n/ViS13T3fdPlc2pat6+nZxKQ/jbJy7v7z6ftX57k+d39n+ZRa1W9IMnxTP4M/6S73zhdf6Z2YHG2\nFKam3Qqvz+QOooeSvCjJHyX55SRXJLknk1uGPz63SoFU1WO7+y+2uO5lSb6/u3+oqr49yZd39w/N\nt8Izx74oydd39zwfzbBZDa/v7hfvpZqAg2mrA9B/IslbuvuqTB5k94eZXFq+vbuvTHJHdu4OHOA8\nthqkput+NMlfTR+o+bVJfm1uhZ3rW5K8bRePd5bpVab1V6AWWhNwcG16ZWp6p867u/uL17X/YSa/\n5a1W1VImt1x/2fxKBWY1vRrzkjneMXe+464dq7Wrpg80/f7uvnFd+8JqAg62rYSpJyd5XSbjLZ6c\nyXxf/zrJfd192Zr1/rq7P3eOtQJsavrL3cdPP2ATYN62cjffkUzuGPme7n5XVb0mky6+9Slsw1RW\nVUa4A7uuaqMb/AA2190znUC2Eqb+LMmHuvtd0+VfzSRMrVbVsTXdfB+5QFGz1MQhdeLEiZw4cWLR\nZbBP+L6wVb4rzGI7v4htOgB9OsHnh6rqS6dNz87kWTG3JHnhtO26bDDZKADAQbfVh3a+LMkbp3N/\n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\nmAIAGCBMAQAMEKaAuVk7f97FFz/irLn4RvZlDrfDa3ROR5gHc/MBczPr/HkXOldsNJffQZyHzr4v\n/L0YndMRNmNuPgCAXSZMAQAMEKYAAAYIU8C27exg4KMGFjNs5DtpcDvbZQA6sG2bDQaedQD6rAOP\nD+Jga/seG4A+MkDd4HYSA9ABAHadMAUAMECYAgAYcGTRBQB706c+9am87nWvy4MPPnim7dprr83j\nH//4BVYFsPcIU8CGbr311rz85f81Dz10TZLkM595ez7ykb/KjTe+cpcqOGraGDL+Pfjs9seOXZFT\np+7ZkapgraFuvqp6XlX9YVX9UVW9fKeKAvaGo0e/Ig888Ko88MCr8tBD37TLR78/kzurTr84nEa/\nB5/dfnX13p0sDM7YdpiqqouS/GSSb0jypCTfXlVftlOFcfisrKwsugTgQFpZdAEccCNXpp6R5IPd\nfW93P5Dkl5JcvTNlcRgJU8B8rCy6AA64kTD1BUk+tGb5z6ZtAACHhgHowIYe9rCH5dOfflse/ejn\nJ0nuv/+DefjDv3XBVQHsPdueTqaqvjbJie5+3nT5+iTd3TeuW8/IUQBg35h1OpmRMHVxkruTPDvJ\nh5O8I8m3d/dd29ohAMA+tO1uvu7+TFW9NMltmYy9eoMgBQAcNtu+MgUAwJzm5quqb6mqP6iqz1TV\n09Z9dkNVfbCq7qqq587j+OxfVfWKqvqzqvq96et5i66JvcXDgplFVd1TVe+tqndX1TsWXQ97S1W9\noapWq+r317RdVlW3VdXdVXVrVV262X7mNdHx+5L8syS/sbaxqq5Kcm2Sq5J8Y5LXlvkiONeru/tp\n09f/XnQx7B0eFsw2PJRkubuf2t3PWHQx7Dk/m8n5ZK3rk9ze3VcmuSPJDZvtZC5hqrvv7u4PJlkf\nlK5O8kvd/WB335Pkg5k8/BPWErA5Hw8LZlaV+V04YJ/r7t9O8tF1zVcnOTl9fzLJNZvtZ7e/YOsf\n9HlfPOiTc720qt5TVa/fyuVVDhUPC2ZWneStVfXOqnrJoothX7i8u1eTpLtPJbl8sw22fTdfVb01\nybG1TZl8aX+ou9+83f1y8F3ou5PktUn+fXd3Vf1Iklcn+Ze7XyVwQDyzuz9cVY/NJFTdNb0aAVu1\n6Z16I49GeM42NrsvyePXLD9u2sYhMsN3578nEcxZ674kT1iz7BzCBXX3h6f//YuquimTrmJhigtZ\nrapj3b1aVUtJPrLZBrvRzbd2/MstSb6tqh5eVV+Y5ImZPOwTkiTTL+5p/zzJHyyqFvakdyZ5YlVd\nUVUPT/JtmZxX4BxV9TlV9cjp+0ckeW6cUzhX5dys8sLp++uS3LzZDuYyN19VXZPkvyX5vCS/XlXv\n6e5v7O4PVNWbknwgyQNJvrs96Iqz/eeqekomd+Dck+RfLbYc9hIPC2ZGx5LcNJ3W7EiSN3b3bQuu\niT2kqn4xyXKSx1TVnyZ5RZIfTfI/q+pFSe7N5CkEF96PLAMAsH1uFwUAGCBMAQAMEKYAAAYIUwAA\nA4QpAIABwhQAwABhCgBggDAFADDg/wMDJzKwjZscMgAAAABJRU5ErkJggg==\n"
},
"output_type": "display_data"
},
{
"metadata": {},
"data": {
"image/png": "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\nAElFTkSuQmCC\n"
},
"output_type": "display_data"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Note that like `print`, you can call any of the `display` functions multiple times in a cell."
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## Adding IPython display support to existing objects"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "When you are directly writing your own classes, you can adapt them for display in IPython by following the above approach. But in practice, you often need to work with existing classes that you can't easily modify. We now illustrate how to add rich output capabilities to existing objects. We will use the NumPy polynomials and change their default representation to be a formatted LaTeX expression."
},
{
"metadata": {},
"cell_type": "markdown",
"source": "First, consider how a NumPy polynomial object renders by default:"
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "p = np.polynomial.Polynomial([1,2,3], [-10, 10])\np",
"execution_count": 9,
"outputs": [
{
"execution_count": 9,
"data": {
"text/plain": "Polynomial([ 1., 2., 3.], [-10., 10.], [-1, 1])"
},
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Next, define a function that pretty-prints a polynomial as a LaTeX string:"
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "def poly_to_latex(p):\n terms = ['%.2g' % p.coef[0]]\n if len(p) > 1:\n term = 'x'\n c = p.coef[1]\n if c!=1:\n term = ('%.2g ' % c) + term\n terms.append(term)\n if len(p) > 2:\n for i in range(2, len(p)):\n term = 'x^%d' % i\n c = p.coef[i]\n if c!=1:\n term = ('%.2g ' % c) + term\n terms.append(term)\n px = '$P(x)=%s$' % '+'.join(terms)\n dom = r', $x \\in [%.2g,\\ %.2g]$' % tuple(p.domain)\n return px+dom",
"execution_count": 10,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "This produces, on our polynomial ``p``, the following:"
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "poly_to_latex(p)",
"execution_count": 11,
"outputs": [
{
"execution_count": 11,
"data": {
"text/plain": "'$P(x)=1+2 x+3 x^2$, $x \\\\in [-10,\\\\ 10]$'"
},
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "You can render this string using the `Latex` class:"
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "from IPython.display import Latex\nLatex(poly_to_latex(p))",
"execution_count": 12,
"outputs": [
{
"execution_count": 12,
"data": {
"text/latex": "$P(x)=1+2 x+3 x^2$, $x \\in [-10,\\ 10]$",
"text/plain": "<IPython.core.display.Latex object>"
},
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "However, you can configure IPython to do this automatically by registering the `Polynomial` class and the `plot_to_latex` function with an IPython display formatter. Let's look at the default formatters provided by IPython:"
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "ip = get_ipython()\nfor mime, formatter in ip.display_formatter.formatters.items():\n print('%24s : %s' % (mime, formatter.__class__.__name__))",
"execution_count": 13,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": " image/png : PNGFormatter\n application/javascript : JavascriptFormatter\n text/latex : LatexFormatter\n image/svg+xml : SVGFormatter\n text/html : HTMLFormatter\n text/markdown : MarkdownFormatter\n image/jpeg : JPEGFormatter\n application/pdf : PDFFormatter\n text/plain : PlainTextFormatter\n application/json : JSONFormatter\n"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "The `formatters` attribute is a dictionary keyed by MIME types. To define a custom LaTeX display function, you want a handle on the `text/latex` formatter:"
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "ip = get_ipython()\nlatex_f = ip.display_formatter.formatters['text/latex']",
"execution_count": 14,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "The formatter object has a couple of methods for registering custom display functions for existing types."
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "help(latex_f.for_type)",
"execution_count": null,
"outputs": []
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "help(latex_f.for_type_by_name)",
"execution_count": null,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "In this case, we will use `for_type_by_name` to register `poly_to_latex` as the display function for the `Polynomial` type:"
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "latex_f.for_type_by_name('numpy.polynomial.polynomial',\n 'Polynomial', poly_to_latex)",
"execution_count": null,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Once the custom display function has been registered, all NumPy `Polynomial` instances will be represented by their LaTeX form instead:"
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "p",
"execution_count": null,
"outputs": []
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "p2 = np.polynomial.Polynomial([-20, 71, -15, 1])\np2",
"execution_count": null,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## More complex display with `_ipython_display_`"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Rich output special methods and functions can only display one object or MIME type at a time. Sometimes this is not enough if you want to display multiple objects or MIME types at once. An example of this would be to use an HTML representation to put some HTML elements in the DOM and then use a JavaScript representation to add events to those elements.\n\n**IPython 2.0** recognizes another display method, `_ipython_display_`, which allows your objects to take complete control of displaying themselves. If this method is defined, IPython will call it, and make no effort to display the object using the above described `_repr_*_` methods for custom display functions. It's a way for you to say \"Back off, IPython, I can display this myself.\" Most importantly, your `_ipython_display_` method can make multiple calls to the top-level `display` functions to accomplish its goals.\n\nHere is an object that uses `display_html` and `display_javascript` to make a plot using the [Flot](http://www.flotcharts.org/) JavaScript plotting library:"
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "import json\nimport uuid\nfrom IPython.display import display_javascript, display_html, display\n\nclass FlotPlot(object):\n def __init__(self, x, y):\n self.x = x\n self.y = y\n self.uuid = str(uuid.uuid4())\n \n def _ipython_display_(self):\n json_data = json.dumps(list(zip(self.x, self.y)))\n display_html('<div id=\"{}\" style=\"height: 300px; width:80%;\"></div>'.format(self.uuid),\n raw=True\n )\n display_javascript(\"\"\"\n require([\"//cdnjs.cloudflare.com/ajax/libs/flot/0.8.2/jquery.flot.min.js\"], function() {\n var line = JSON.parse(\"%s\");\n console.log(line);\n $.plot(\"#%s\", [line]);\n });\n \"\"\" % (json_data, self.uuid), raw=True)\n",
"execution_count": 15,
"outputs": []
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "import numpy as np\nx = np.linspace(0,10)\ny = np.sin(x)\nFlotPlot(x, np.sin(x))",
"execution_count": 16,
"outputs": [
{
"metadata": {},
"data": {
"text/html": "<div id=\"9a5d0f66-4cb3-4751-8fe0-9315efa98902\" style=\"height: 300px; width:80%;\"></div>"
},
"output_type": "display_data"
},
{
"metadata": {},
"data": {
"application/javascript": "\n require([\"//cdnjs.cloudflare.com/ajax/libs/flot/0.8.2/jquery.flot.min.js\"], function() {\n var line = JSON.parse(\"[[0.0, 0.0], [0.20408163265306123, 0.20266793654820095], [0.40816326530612246, 0.39692414892492234], [0.6122448979591837, 0.5747060412161791], [0.8163265306122449, 0.7286347834693503], [1.0204081632653061, 0.8523215697196184], [1.2244897959183674, 0.9406327851124867], [1.4285714285714286, 0.9899030763721239], [1.6326530612244898, 0.9980874821347183], [1.836734693877551, 0.9648463089837632], [2.0408163265306123, 0.8915592304110037], [2.2448979591836737, 0.7812680235262639], [2.4489795918367347, 0.6385503202266021], [2.6530612244897958, 0.469329612777201], [2.857142857142857, 0.28062939951435684], [3.0612244897959187, 0.0802816748428135], [3.2653061224489797, -0.12339813736217871], [3.4693877551020407, -0.3219563150726187], [3.673469387755102, -0.5071517094845144], [3.8775510204081636, -0.6712977935519321], [4.081632653061225, -0.8075816909683364], [4.285714285714286, -0.9103469443107828], [4.4897959183673475, -0.9753282860670456], [4.6938775510204085, -0.9998286683840896], [4.8979591836734695, -0.9828312039256306], [5.1020408163265305, -0.9250413717382029], [5.3061224489795915, -0.8288577363730427], [5.510204081632653, -0.6982723955653996], [5.714285714285714, -0.5387052883861563], [5.918367346938775, -0.35677924089893803], [6.122448979591837, -0.16004508604325057], [6.326530612244898, 0.04333173336868346], [6.530612244897959, 0.2449100710119793], [6.73469387755102, 0.4363234264718193], [6.938775510204081, 0.6096271964908323], [7.142857142857143, 0.7576284153927202], [7.346938775510204, 0.8741842988197335], [7.551020408163265, 0.9544571997387519], [7.755102040816327, 0.9951153947776636], [7.959183673469388, 0.9944713672636168], [8.16326530612245, 0.9525518475314604], [8.36734693877551, 0.8710967034823207], [8.571428571428571, 0.7534867274396376], [8.775510204081632, 0.6046033165061543], [8.979591836734695, 0.43062587038273736], [9.183673469387756, 0.23877531564403087], [9.387755102040817, 0.03701440148506237], [9.591836734693878, -0.1662827938487564], [9.795918367346939, -0.3626784288265488], [10.0, -0.5440211108893699]]\");\n console.log(line);\n $.plot(\"#9a5d0f66-4cb3-4751-8fe0-9315efa98902\", [line]);\n });\n "
},
"output_type": "display_data"
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"language_info": {
"mimetype": "text/x-python",
"name": "python",
"file_extension": ".py",
"version": "3.5.1",
"nbconvert_exporter": "python",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"pygments_lexer": "ipython3"
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3",
"language": "python"
},
"celltoolbar": "Edit Metadata",
"gist_id": "4f6ccc5ae1eb95e58107"
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment