{ "metadata": { "name": "", "signature": "sha256:9c0177def85f24a70b579bb05088f8eccb50700b55f738e3c0227de6dfec149f" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Plugins in mpld3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One of the most interesting features of mpld3 is the ability to add plugins to your plots. Plugins are objects which define new, interactive functionality for your visualizations. There are several built-in to the mpld3 package, and there is a well-defined API to create your own. We'll briefly walk through these below." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll start with the standard set of imports for working with mpld3" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%matplotlib inline\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import mpld3\n", "mpld3.enable_notebook()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Just to make sure it's working, let's create a simple plot:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "np.random.seed(0)\n", "plt.plot(np.random.rand(10));" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", "\n", "\n", "\n", "
\n", "" ], "metadata": {}, "output_type": "display_data", "png": "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\nQdL2tkUL6ZpYXS1//9lnMkq/7TZt49Ozbt2YxI0kNFS+v/fvd+91TORkCMHBstnn2DFg8mSgqkrq\niX/5iyR4okBgMjXtoAn+CJBhXHSRtGrdt09qvx07SsMtokDSlDo5EzkZStu2wIoVgNkMzJsXmEe4\nUfPWlBE5JzuJiHTEZpNj+w4ckIEKJzuJiAzGbJYVWXa7669hIici0pGm7PBsNJHn5OQgKioKkZGR\nyMjIuOB13377LYKCgvDxxx+7/nQiImrA3QZaThO5w+HA1KlTkZOTg8LCQmRlZaGoqOi8182cOROj\nRo1iHZyIyEPutrR1mshzc3MRERGBsLAwBAcHIzU1FdnZ2Q2ue/XVVzF+/Hh0797d7YCJiKi+2hG5\nq+Nip4ncbrcjNDS07nOz2Qz7ORV4u92O7Oxs3P//W8+ZuB6MiMgjISGy0c3V07KCnH3RlaT8yCOP\nYO7cuXVLZJyVVtLPaumVlJSEpKQk16IkImomrFYrrFYrOnSQ055c4TSRh4SEwGaz1X1us9lgNpvr\nXfPdd98h9f93LDp8+DBWrVqF4OBgjBkzpsH9zk7kRETUUO0gVynA4QCA2Y2+xmkiT0xMRHFxMUpL\nS9G7d28sX74cWVlZ9a7Zu3dv3Z8nTZqEG2+88bxJnIiIXDd4sLRxdoXTRB4UFITMzEykpKTA4XBg\nypQpiI6OxqJFiwAAaWlpHgdLREQNubNyhVv0iYh06pJLgP/9j1v0iYgMa9Ik167jiJyISMfYNIuI\nqBlgIiciMjgmciIig2MiJyIyOCZyIiKDYyInIjI4JnIiIoNjIiciMjgmciIig2MiJyIyOCZyIiKD\nYyInIjI4JnIiIoNjIiciMjgmciIig2MiJyIyOCZyIiKDYyInIjI4JnIiIoNjIiciMrhGE3lOTg6i\noqIQGRmJjIyMBl/Pzs5GfHw8LBYLBg8ejDVr1vgkUCIiOj+nidzhcGDq1KnIyclBYWEhsrKyUFRU\nVO+a5ORkbN26FQUFBXjnnXdw3333+TRgb7JarVqH0IAeYwL0GRdjcg1jcp1e42qM00Sem5uLiIgI\nhIWFITg4GKmpqcjOzq53Tbt27er+fOLECXTr1s03kfqAHv/R9BgToM+4GJNrGJPr9BpXY5wmcrvd\njtDQ0LrPzWYz7HZ7g+s+/fRTREdH4/rrr8ff//5370dJREQX5DSRm0wml24yduxYFBUVYcWKFbjz\nzju9EhgREblIObFp0yaVkpJS9/mcOXPU3Llznb1E9e3bVx0+fLjB34eHhysA/OAHP/jBDzc+wsPD\nneZcpZQKghOJiYkoLi5GaWkpevfujeXLlyMrK6veNXv27EHfvn1hMpmQn58PAOjatWuDe+3evdvZ\no4iIqImcJvKgoCBkZmYiJSUFDocDU6ZMQXR0NBYtWgQASEtLw0cffYQlS5YgODgY7du3x7Jly/wS\nOBERCZNSSmkdBBERNZ3Pd3Y2tqFIC5MnT0bPnj0xYMAArUOpY7PZMGLECMTGxiIuLk4Xq39Onz6N\noUOHIiEhATExMXjyySe1DqmOw+GAxWLBjTfeqHUodcLCwjBw4EBYLBZcfvnlWocDACgvL8f48eMR\nHR2NmJgYbN68WdN4du3aBYvFUvfRsWNHXXyvv/jii4iNjcWAAQMwceJEnDlzRuuQsGDBAgwYMABx\ncXFYsGCB84sbraJ7oLq6WoWHh6uSkhJVWVmp4uPjVWFhoS8f6ZL169er/Px8FRcXp3UodQ4cOKAK\nCgqUUkr98ssvql+/frr4b3Xy5EmllFJVVVVq6NChasOGDRpHJF555RU1ceJEdeONN2odSp2wsDB1\n5MgRrcOo56677lKLFy9WSsm/YXl5ucYR/crhcKhevXqpffv2aRpHSUmJ6tOnjzp9+rRSSqnbbrtN\nvfPOO5rG9P3336u4uDh16tQpVV1drZKTk9Xu3bsveL1PR+SubCjSwrBhw9C5c2etw6inV69eSEhI\nAAC0b98e0dHR2L9/v8ZRAW3btgUAVFZWwuFwoEuXLhpHBJSVlWHlypX4wx/+AKWzyqCe4jl27Bg2\nbNiAyZMnA5A5r44dO2oc1a9Wr16N8PDwentVtHDxxRcjODgYFRUVqK6uRkVFBUJCQjSNaefOnRg6\ndChat26Nli1bYvjw4fj4448veL1PE7mrG4qovtLSUhQUFGDo0KFah4KamhokJCSgZ8+eGDFiBGJi\nYrQOCdOnT8e8efPQooW+er6ZTCYkJycjMTER//jHP7QOByUlJejevTsmTZqEQYMG4d5770VFRYXW\nYdVZtmwZJk6cqHUY6NKlCx599FFceuml6N27Nzp16oTk5GRNY4qLi8OGDRvw888/o6KiAp9//jnK\nysoueL1PfxJc3VBEvzpx4gTGjx+PBQsWoH379lqHgxYtWmDLli0oKyvD+vXrNd/C/H//93/o0aMH\nLBaLrka/APCf//wHBQUFWLVqFV577TVs2LBB03iqq6uRn5+PBx54APn5+WjXrh3mzp2raUy1Kisr\nsWLFCtx6661ah4I9e/Zg/vz5KC0txf79+3HixAl88MEHmsYUFRWFmTNn4rrrrsP1118Pi8XidODi\n00QeEhICm81W97nNZoPZbPblIw2tqqoK48aNwx133IGxY8dqHU49HTt2xA033IC8vDxN49i4cSM+\n++wz9OnTBxMmTMCaNWtw1113aRpTrUsuuQQA0L17d9x8883Izc3VNB6z2Qyz2YwhQ4YAAMaPH1+3\n10Nrq1atwuDBg9G9e3etQ0FeXh6uuuoqdO3aFUFBQbjllluwceNGrcPC5MmTkZeXh3Xr1qFTp07o\n37//Ba/1aSI/e0NRZWUlli9fjjFjxvjykYallMKUKVMQExODRx55ROtwAACHDx9GeXk5AODUqVP4\n6quvYLFYNI1pzpw5sNlsKCkpwbJly3DNNddgyZIlmsYEABUVFfjll18AACdPnsSXX36p+aqoXr16\nITQ0FD/88AMAqUnHxsZqGlOtrKwsTJgwQeswAMjod/PmzTh16hSUUli9erUuSog//fQTAGDfvn34\n5JNPnJehfD37unLlStWvXz8VHh6u5syZ4+vHuSQ1NVVdcsklqlWrVspsNqu33npL65DUhg0blMlk\nUvHx8SohIUElJCSoVatWaRrTtm3blMViUfHx8WrAgAHqpZde0jSec1mtVt2sWtm7d6+Kj49X8fHx\nKjY2Vjff61u2bFGJiYlq4MCB6uabb9bFqpUTJ06orl27quPHj2sdSp2MjAwVExOj4uLi1F133aUq\nKyu1DkkNGzZMxcTEqPj4eLVmzRqn13JDEBGRwelr2p+IiNzGRE5EZHBM5EREBsdETkRkcEzkREQG\nx0RORGRwTORERAbHRE5EZHD/D7JYZxnQr4VpAAAAAElFTkSuQmCC\n", "text": [ "