Last active
February 7, 2016 11:06
-
-
Save BibMartin/d55b2de09ed961723034 to your computer and use it in GitHub Desktop.
HowTo embed python-nvd3 chart in folium
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<center><h1>How to embed `python-nvd3` chart into `folium`</h1></center>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "We import the targeted libraries." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 1, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "loaded nvd3 IPython extension\n", | |
| "run nvd3.ipynb.initialize_javascript() to set up the notebook\n", | |
| "help(nvd3.ipynb.initialize_javascript) for options\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "import folium\n", | |
| "from folium.element import *\n", | |
| "from nvd3 import pieChart" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "We create a class that embeds a `python-nvd3` chart into a `folium.MacroElement`." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 2, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "class Nvd3Chart(MacroElement):\n", | |
| " \"\"\"TODO : docstring\"\"\"\n", | |
| " def __init__(self, chart):\n", | |
| " super(Nvd3Chart, self).__init__()\n", | |
| " self._name = 'Nvd3Chart'\n", | |
| " \n", | |
| " self.chart = chart\n", | |
| " self.chart.name = self.get_name()\n", | |
| " self.chart.htmlcontent = None\n", | |
| " self.chart.htmlheader = None\n", | |
| " self.chart.container = None\n", | |
| " self.chart.style = \"\"\n", | |
| "\n", | |
| " self._template = Template(u\"\"\"\n", | |
| " {% macro header(this, kwargs) %}\n", | |
| " {% if this.chart.buildhtmlheader() %}{% endif %}\n", | |
| " {{this.chart.htmlheader}}\n", | |
| " {% endmacro %}\n", | |
| " {% macro html(this, kwargs) %}\n", | |
| " {% if this.chart.buildcontent() %}{% endif %}\n", | |
| " {{this.chart.htmlcontent}}\n", | |
| " {% endmacro %}\n", | |
| " \"\"\") # noqa" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Now, we create a chart (this is an example chart from `python-nvd3`'s doc)." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 3, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "chart = pieChart(color_category='category20c', height=450, width=450)\n", | |
| "xdata = [\"Orange\", \"Banana\", \"Pear\", \"Kiwi\", \"Apple\", \"Strawberry\", \"Pineapple\"]\n", | |
| "ydata = [3, 4, 0, 1, 5, 7, 3]\n", | |
| "extra_serie = {\"tooltip\": {\"y_start\": \"\", \"y_end\": \" cal\"}}\n", | |
| "chart.add_serie(y=ydata, x=xdata, extra=extra_serie)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "And then we can use the chart into `folium`, as if it was a `folium` object." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 4, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<iframe src=\"data:text/html;base64,CiAgICAgICAgPCFET0NUWVBFIGh0bWw+CiAgICAgICAgPGhlYWQ+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICA8bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIgLz4KICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9sZWFmbGV0LzAuNy4zL2xlYWZsZXQuanMiPjwvc2NyaXB0PgogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vYWpheC5nb29nbGVhcGlzLmNvbS9hamF4L2xpYnMvanF1ZXJ5LzEuMTEuMS9qcXVlcnkubWluLmpzIj48L3NjcmlwdD4KICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIDxzY3JpcHQgc3JjPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIDxzY3JpcHQgc3JjPSJodHRwczovL3Jhd2dpdGh1Yi5jb20vbHZvb2dkdC9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAvZGV2ZWxvcC9kaXN0L2xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLmpzIj48L3NjcmlwdD4KICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9sZWFmbGV0Lm1hcmtlcmNsdXN0ZXIvMC40LjAvbGVhZmxldC5tYXJrZXJjbHVzdGVyLXNyYy5qcyI+PC9zY3JpcHQ+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvbGVhZmxldC5tYXJrZXJjbHVzdGVyLzAuNC4wL2xlYWZsZXQubWFya2VyY2x1c3Rlci5qcyI+PC9zY3JpcHQ+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2xlYWZsZXQvMC43LjMvbGVhZmxldC5jc3MiIC8+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vYm9vdHN0cmFwLzMuMi4wL2Nzcy9ib290c3RyYXAubWluLmNzcyIgLz4KICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIiAvPgogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2ZvbnQtYXdlc29tZS80LjEuMC9jc3MvZm9udC1hd2Vzb21lLm1pbi5jc3MiIC8+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vcmF3Z2l0LmNvbS9sdm9vZ2R0L0xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLzIuMC9kZXZlbG9wL2Rpc3QvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuY3NzIiAvPgogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9sZWFmbGV0Lm1hcmtlcmNsdXN0ZXIvMC40LjAvTWFya2VyQ2x1c3Rlci5EZWZhdWx0LmNzcyIgLz4KICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvbGVhZmxldC5tYXJrZXJjbHVzdGVyLzAuNC4wL01hcmtlckNsdXN0ZXIuY3NzIiAvPgogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vcHl0aG9uLXZpc3VhbGl6YXRpb24vZm9saXVtL21hc3Rlci9mb2xpdW0vdGVtcGxhdGVzL2xlYWZsZXQuYXdlc29tZS5yb3RhdGUuY3NzIiAvPgogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPgoKICAgICAgICAgICAgaHRtbCwgYm9keSB7CiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAjbWFwIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uOmFic29sdXRlOwogICAgICAgICAgICAgICAgdG9wOjA7CiAgICAgICAgICAgICAgICBib3R0b206MDsKICAgICAgICAgICAgICAgIHJpZ2h0OjA7CiAgICAgICAgICAgICAgICBsZWZ0OjA7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjbWFwX2NmMGRmNmMyOGQ1MjQzYmM5OTA3ZWZiYjM1MTI3ODgxIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDEwMC4wJTsKICAgICAgICAgICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI2Rpdl8wOTVkNDRlZGFhNmI0YzRkYjM3ZDk3MmUyMGQ1ZGExYyB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IGFic29sdXRlOwogICAgICAgICAgICAgICAgd2lkdGggOiA0NS4wJTsKICAgICAgICAgICAgICAgIGhlaWdodDogOTAuMCU7CiAgICAgICAgICAgICAgICBsZWZ0OiAyLjUlOwogICAgICAgICAgICAgICAgdG9wOiA1LjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvbnZkMy8xLjcuMC9udi5kMy5taW4uY3NzIiByZWw9InN0eWxlc2hlZXQiIC8+PHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2QzLzMuNS41L2QzLm1pbi5qcyI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL252ZDMvMS43LjAvbnYuZDMubWluLmpzIj48L3NjcmlwdD4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICNkaXZfOWI5OGJhODlkMTBjNGM4YzhiNDM1OWFjZjhlZDZmYjMgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiBhYnNvbHV0ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNDUuMCU7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDkwLjAlOwogICAgICAgICAgICAgICAgbGVmdDogNTIuNSU7CiAgICAgICAgICAgICAgICB0b3A6IDUuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgPC9oZWFkPgogICAgICAgIDxib2R5PgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxkaXYgaWQ9ImRpdl8wOTVkNDRlZGFhNmI0YzRkYjM3ZDk3MmUyMGQ1ZGExYyI+CiAgICAgICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvbGl1bS1tYXAiIGlkPSJtYXBfY2YwZGY2YzI4ZDUyNDNiYzk5MDdlZmJiMzUxMjc4ODEiID48L2Rpdj4KICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGl2IGlkPSJkaXZfOWI5OGJhODlkMTBjNGM4YzhiNDM1OWFjZjhlZDZmYjMiPgogICAgICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgIDxkaXYgaWQ9Im52ZDNfY2hhcnRfYzIzOTY4ZWE1NTYyNDEwNThiMWZlYWY4NjY1MzEwYzMiPjxzdmcgc3R5bGU9IndpZHRoOjQ1MHB4O2hlaWdodDo0NTBweDsiPjwvc3ZnPjwvZGl2PgoKCiAgICA8c2NyaXB0PgoKCgogICAgZGF0YV9udmQzX2NoYXJ0X2MyMzk2OGVhNTU2MjQxMDU4YjFmZWFmODY2NTMxMGMzPVt7InZhbHVlcyI6IFt7InZhbHVlIjogMywgImxhYmVsIjogIk9yYW5nZSJ9LCB7InZhbHVlIjogNCwgImxhYmVsIjogIkJhbmFuYSJ9LCB7InZhbHVlIjogMCwgImxhYmVsIjogIlBlYXIifSwgeyJ2YWx1ZSI6IDEsICJsYWJlbCI6ICJLaXdpIn0sIHsidmFsdWUiOiA1LCAibGFiZWwiOiAiQXBwbGUifSwgeyJ2YWx1ZSI6IDcsICJsYWJlbCI6ICJTdHJhd2JlcnJ5In0sIHsidmFsdWUiOiAzLCAibGFiZWwiOiAiUGluZWFwcGxlIn1dLCAia2V5IjogIlNlcmllIDEifV07CgogICAgbnYuYWRkR3JhcGgoZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGNoYXJ0ID0gbnYubW9kZWxzLnBpZUNoYXJ0KCk7CiAgICAgICAgY2hhcnQubWFyZ2luKHt0b3A6IDMwLCByaWdodDogNjAsIGJvdHRvbTogMjAsIGxlZnQ6IDYwfSk7CiAgICAgICAgdmFyIGRhdHVtID0gZGF0YV9udmQzX2NoYXJ0X2MyMzk2OGVhNTU2MjQxMDU4YjFmZWFmODY2NTMxMGMzWzBdLnZhbHVlczsKCiAgICAgICAgY2hhcnQuY29sb3IoZDMuc2NhbGUuY2F0ZWdvcnkyMGMoKS5yYW5nZSgpKTsKCiAgICBjaGFydC50b29sdGlwQ29udGVudChmdW5jdGlvbihrZXksIHksIGUsIGdyYXBoKSB7CiAgICAgICAgICB2YXIgeCA9IFN0cmluZyhrZXkpOwogICAgICAgICAgICAgIHZhciB5ID0gIFN0cmluZyh5KSAgKyAnIGNhbCc7CgogICAgICAgICAgICAgIHRvb2x0aXBfc3RyID0gJzxjZW50ZXI+PGI+Jyt4Kyc8L2I+PC9jZW50ZXI+JyArIHk7CiAgICAgICAgICAgICAgcmV0dXJuIHRvb2x0aXBfc3RyOwogICAgICAgICAgICAgIH0pOwogICAgICAgIGNoYXJ0LnNob3dMYWJlbHModHJ1ZSk7CgogICAgICAgICAgICBjaGFydC5kb251dChmYWxzZSk7CgogICAgY2hhcnQuc2hvd0xlZ2VuZCh0cnVlKTsKCgoKCiAgICAgICAgY2hhcnQKICAgICAgICAgICAgLngoZnVuY3Rpb24oZCkgeyByZXR1cm4gZC5sYWJlbCB9KQogICAgICAgICAgICAueShmdW5jdGlvbihkKSB7IHJldHVybiBkLnZhbHVlIH0pOwoKICAgICAgICBjaGFydC53aWR0aCg0NTApOwoKICAgICAgICBjaGFydC5oZWlnaHQoNDUwKTsKCgogICAgICAgICAgICBkMy5zZWxlY3QoJyNudmQzX2NoYXJ0X2MyMzk2OGVhNTU2MjQxMDU4YjFmZWFmODY2NTMxMGMzIHN2ZycpCiAgICAgICAgICAgIC5kYXR1bShkYXR1bSkKICAgICAgICAgICAgLnRyYW5zaXRpb24oKS5kdXJhdGlvbig1MDApCiAgICAgICAgICAgIC5hdHRyKCd3aWR0aCcsIDQ1MCkKICAgICAgICAgICAgLmF0dHIoJ2hlaWdodCcsIDQ1MCkKICAgICAgICAgICAgLmNhbGwoY2hhcnQpOwoKCiAgICAgICAgfSk7CgoKCiAgICA8L3NjcmlwdD4KCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICA8L2JvZHk+CiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAoKICAgICAgICAgICAgdmFyIHNvdXRoV2VzdCA9IEwubGF0TG5nKC05MCwgLTE4MCk7CiAgICAgICAgICAgIHZhciBub3J0aEVhc3QgPSBMLmxhdExuZyg5MCwgMTgwKTsKICAgICAgICAgICAgdmFyIGJvdW5kcyA9IEwubGF0TG5nQm91bmRzKHNvdXRoV2VzdCwgbm9ydGhFYXN0KTsKCiAgICAgICAgICAgIHZhciBtYXBfY2YwZGY2YzI4ZDUyNDNiYzk5MDdlZmJiMzUxMjc4ODEgPSBMLm1hcCgnbWFwX2NmMGRmNmMyOGQ1MjQzYmM5OTA3ZWZiYjM1MTI3ODgxJywgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VudGVyOlswLDBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgem9vbTogMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heEJvdW5kczogYm91bmRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXJzOiBbXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciB0aWxlX2xheWVyX2I3ZTE1MWJmMDUwNDQ5YzRiOThkNDBmZGZhZDlkZGY5ID0gTC50aWxlTGF5ZXIoCiAgICAgICAgICAgICAgICAnaHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmcnLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIG1heFpvb206IDE4LAogICAgICAgICAgICAgICAgICAgIG1pblpvb206IDEsCiAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRpb246ICdEYXRhIGJ5IDxhIGhyZWY9Imh0dHA6Ly9vcGVuc3RyZWV0bWFwLm9yZyI+T3BlblN0cmVldE1hcDwvYT4sIHVuZGVyIDxhIGhyZWY9Imh0dHA6Ly93d3cub3BlbnN0cmVldG1hcC5vcmcvY29weXJpZ2h0Ij5PRGJMPC9hPi4nLAogICAgICAgICAgICAgICAgICAgIGRldGVjdFJldGluYTogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9jZjBkZjZjMjhkNTI0M2JjOTkwN2VmYmIzNTEyNzg4MSk7CgogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIDwvc2NyaXB0PgogICAgICAgIA==\" width=\"100%\" height=\"500\"></iframe>" | |
| ], | |
| "text/plain": [ | |
| "<folium.element.Figure at 0x7f6005cc2588>" | |
| ] | |
| }, | |
| "execution_count": 4, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "f = Figure(width='100%', height=500)\n", | |
| "\n", | |
| "ax1 = f.add_subplot(1,2,1)\n", | |
| "ax1.add_child(folium.Map())\n", | |
| "\n", | |
| "ax2 = f.add_subplot(1,2,2)\n", | |
| "ax2.add_child(Nvd3Chart(chart))\n", | |
| "\n", | |
| "f" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "That's it." | |
| ] | |
| } | |
| ], | |
| "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