Skip to content

Instantly share code, notes, and snippets.

@BibMartin
Last active February 7, 2016 11:06
Show Gist options
  • Select an option

  • Save BibMartin/d55b2de09ed961723034 to your computer and use it in GitHub Desktop.

Select an option

Save BibMartin/d55b2de09ed961723034 to your computer and use it in GitHub Desktop.
HowTo embed python-nvd3 chart in folium
Display the source blob
Display the rendered blob
Raw
{
"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