From a336a48743b51dd6a700ae51e63681bdd3fee8b9 Mon Sep 17 00:00:00 2001 From: Nicolas Kruchten Date: Wed, 16 Sep 2020 20:08:07 -0400 Subject: [PATCH 1/4] switch from graph_objects to px --- Examples.ipynb | 175 +++++++++++------------------------------------ requirements.txt | 3 +- 2 files changed, 43 insertions(+), 135 deletions(-) diff --git a/Examples.ipynb b/Examples.ipynb index d70a77f..3249249 100644 --- a/Examples.ipynb +++ b/Examples.ipynb @@ -18,6 +18,7 @@ "\n", "from plotly import figure_factory\n", "from plotly import graph_objects\n", + "import plotly.express as px\n", "import plotly.io as pio\n", "from IPython.core.magic import Magics, magics_class, cell_magic\n", "\n", @@ -49,6 +50,11 @@ "templated_fig = pio.to_templated(fig)\n", "pio.templates['my_template'] = templated_fig.layout.template\n", "pio.templates.default = 'my_template'\n", + "px.defaults.width = 100\n", + "px.defaults.height = 100\n", + "pio.renderers.default = \"png\"\n", + "pio.renderers[\"png\"].width = 900\n", + "pio.renderers[\"png\"].height = 900\n", "\n", "alt.renderers.enable('png', webdriver='firefox')" ] @@ -286,17 +292,8 @@ }, "outputs": [], "source": [ - "mpgGrouped = mpg.groupby('manufacturer').size()\n", - "fig = graph_objects.Figure(layout={'title' : 'Number of Cars by Make'})\n", - "bar = graph_objects.Bar({\n", - " 'type' : 'bar',\n", - " 'x' : mpgGrouped.values.tolist(),\n", - " 'y' : mpgGrouped.index.tolist(),\n", - " 'orientation' : 'h'\n", - " \n", - " })\n", - "fig.add_trace(bar)\n", - "Image(fig.to_image(format=\"png\", width=900, height=900))" + "px.histogram(mpg, y=\"manufacturer\", \n", + " title='Number of Cars by Make')" ] }, { @@ -410,13 +407,7 @@ }, "outputs": [], "source": [ - "fig = graph_objects.Figure()\n", - "hist = graph_objects.Histogram({\n", - " 'type' : 'histogram',\n", - " 'x' : mpg['cty'],\n", - "})\n", - "fig.add_trace(hist)\n", - "Image(fig.to_image(format=\"png\", width=900, height=900))" + "px.histogram(mpg, x=\"cty\")" ] }, { @@ -547,23 +538,12 @@ }, "outputs": [], "source": [ - "fig = graph_objects.Figure(layout={\n", - " 'title' : 'Engine Displacement in Liters vs Highway MPG',\n", - " 'xaxis' : {\n", - " 'title' : 'Engine Displacement in Liters'\n", - " },\n", - " 'yaxis' : {\n", - " 'title' : 'Highway MPG'\n", - " }\n", - "})\n", - "scatter = graph_objects.Scatter({\n", - " 'type' : 'scatter',\n", - " 'mode' : 'markers',\n", - " 'x' : mpg.displ,\n", - " 'y' : mpg.hwy \n", - "})\n", - "fig.add_trace(scatter)\n", - "Image(fig.to_image(format=\"png\", width=900, height=900))" + "px.scatter(mpg, x=\"displ\", y=\"hwy\", \n", + " title='Engine Displacement in Liters vs Highway MPG',\n", + " labels=dict(\n", + " displ='Engine Displacement in Liters', \n", + " hwy='Highway MPG')\n", + " )" ] }, { @@ -841,27 +821,12 @@ }, "outputs": [], "source": [ - "traces = []\n", - "for cls in mpg[\"class\"].unique():\n", - " traces.append(\n", - " graph_objects.Scatter(\n", - " {\n", - " \"mode\": \"markers\",\n", - " \"x\": mpg.displ[mpg[\"class\"] == cls],\n", - " \"y\": mpg.hwy[mpg[\"class\"] == cls],\n", - " \"name\": cls,\n", - " }\n", - " )\n", - " )\n", - "fig = graph_objects.Figure(\n", - " layout={\n", - " \"title\": \"Engine Displacement in Liters vs Highway MPG\",\n", - " \"xaxis\": {\"title\": \"Engine Displacement in Liters\",},\n", - " \"yaxis\": {\"title\": \"Highway MPG\"},\n", - " },\n", - " data=traces,\n", - ")\n", - "Image(fig.to_image(format=\"png\", width=900, height=900))" + "px.scatter(mpg, x=\"displ\", y=\"hwy\", color=\"class\", \n", + " title='Engine Displacement in Liters vs Highway MPG',\n", + " labels=dict(\n", + " displ='Engine Displacement in Liters', \n", + " hwy='Highway MPG')\n", + " )" ] }, { @@ -976,29 +941,10 @@ }, "outputs": [], "source": [ - "traces = [\n", - " graph_objects.Scatter(\n", - " {\n", - " \"mode\": \"markers\",\n", - " \"x\": mpg.cty,\n", - " \"y\": mpg.hwy,\n", - " \"marker\": {\"size\": mpg.cyl, \"color\": \"rgba(54,54,54,0.5)\"},\n", - " \"name\": cls,\n", - " }\n", - " )\n", - "]\n", - "\n", - "fig = graph_objects.Figure(\n", - " **{\n", - " \"data\": traces,\n", - " \"layout\": {\n", - " \"title\": \"Engine Displacement in Liters vs Highway MPG\",\n", - " \"xaxis\": {\"title\": \"Engine Displacement in Liters\",},\n", - " \"yaxis\": {\"title\": \"Highway MPG\"},\n", - " },\n", - " }\n", - ")\n", - "Image(fig.to_image(format=\"png\", width=900, height=900))" + "px.scatter(mpg, x=\"cty\", y=\"hwy\", size=\"cyl\", size_max=10,\n", + " title='City MPG vs Highway MPG',\n", + " labels=dict(cty='City MPG', hwy='Highway MPG')\n", + " )" ] }, { @@ -1099,8 +1045,7 @@ }, "outputs": [], "source": [ - "fig = figure_factory.create_facet_grid(df=mpg, x=\"displ\", y=\"cty\", facet_col=\"class\")\n", - "Image(fig.to_image(format=\"png\", width=900, height=900))" + "px.scatter(mpg, x=\"displ\", y=\"hwy\", facet_col=\"class\", facet_col_wrap=4)" ] }, { @@ -1205,14 +1150,9 @@ }, "outputs": [], "source": [ - "fig = figure_factory.create_facet_grid(\n", - " df=mpg, \n", - " x=\"displ\", \n", - " y=\"cty\", \n", - " facet_col=\"cyl\", \n", - " facet_row=\"drv\"\n", - ")\n", - "Image(fig.to_image(format=\"png\", width=900, height=900))" + "px.scatter(mpg, x=\"displ\", y=\"hwy\", \n", + " facet_col=\"cyl\", facet_row=\"drv\",\n", + " category_orders=dict(cyl=[4,5,6,8]))" ] }, { @@ -1450,24 +1390,11 @@ }, "outputs": [], "source": [ - "traces = []\n", - "newDiamond = diamonds.groupby(['cut','clarity']).size().unstack()\n", - "for c in newDiamond.columns:\n", - " traces.append(graph_objects.Bar({\n", - " 'x' : newDiamond.index,\n", - " 'y' : newDiamond[c],\n", - " 'name' : c\n", - " }))\n", - "fig = graph_objects.Figure(**{\n", - " 'data' : traces,\n", - " 'layout' : {\n", - " 'barmode' : 'stack',\n", - " 'xaxis' : {\n", - " 'title' : 'cut'\n", - " }, \n", - " }\n", - "})\n", - "Image(fig.to_image(format=\"png\", width=900, height=900))" + "px.histogram(diamonds, x=\"cut\", color=\"clarity\",\n", + " category_orders=dict(cut=[\n", + " \"Fair\", \"Good\", \"Very Good\", \n", + " \"Premium\", \"Ideal\"])\n", + " )" ] }, { @@ -1558,24 +1485,11 @@ }, "outputs": [], "source": [ - "traces = []\n", - "newDiamond = diamonds.groupby(['cut','clarity']).size().unstack()\n", - "for c in newDiamond.columns:\n", - " traces.append(graph_objects.Bar({\n", - " 'x' : newDiamond.index,\n", - " 'y' : newDiamond[c],\n", - " 'name' : c\n", - " }))\n", - "fig = graph_objects.Figure(**{\n", - " 'data' : traces,\n", - " 'layout' : {\n", - " 'barmode' : 'group',\n", - " 'xaxis' : {\n", - " 'title' : 'cut'\n", - " }, \n", - " }\n", - "})\n", - "Image(fig.to_image(format=\"png\", width=900, height=900))" + "px.histogram(diamonds, x=\"cut\", color=\"clarity\", barmode=\"group\",\n", + " category_orders=dict(cut=[\n", + " \"Fair\", \"Good\", \"Very Good\", \n", + " \"Premium\", \"Ideal\"])\n", + " )" ] }, { @@ -1773,14 +1687,7 @@ }, "outputs": [], "source": [ - "fig = graph_objects.Figure(layout={'xaxis' : { 'title' : 'date'}})\n", - "scatter = graph_objects.Scatter({\n", - " 'mode' :'lines',\n", - " 'x' : ts.date,\n", - " 'y' : ts.value\n", - "})\n", - "fig.add_trace(scatter)\n", - "Image(fig.to_image(format=\"png\", width=900, height=900))" + "px.line(ts, x=\"date\", y=\"value\")" ] }, { @@ -1818,7 +1725,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.0" + "version": "3.7.7" } }, "nbformat": 4, diff --git a/requirements.txt b/requirements.txt index a0aaeb2..b8b7027 100644 --- a/requirements.txt +++ b/requirements.txt @@ -15,7 +15,8 @@ chart-studio statsmodels==0.11.1 rpy2 psutil -plotly +plotly==4.10.0 +kaleido tzlocal simplegeneric altair From f618b148dca23253d2872791ca33c45b3d1a6151 Mon Sep 17 00:00:00 2001 From: Nicolas Kruchten Date: Thu, 17 Sep 2020 12:01:15 -0400 Subject: [PATCH 2/4] tweaks to Plotly formatting --- Examples.ipynb | 110 +++++++++++++++++++++++++++---------------------- 1 file changed, 60 insertions(+), 50 deletions(-) diff --git a/Examples.ipynb b/Examples.ipynb index 3249249..9bd04d0 100644 --- a/Examples.ipynb +++ b/Examples.ipynb @@ -19,7 +19,6 @@ "from plotly import figure_factory\n", "from plotly import graph_objects\n", "import plotly.express as px\n", - "import plotly.io as pio\n", "from IPython.core.magic import Magics, magics_class, cell_magic\n", "\n", "from IPython.display import Image\n", @@ -45,16 +44,10 @@ ") # for plotnine\n", "\n", "\n", - "fig = graph_objects.Figure(layout = dict(width=100, height=100))\n", - "\n", - "templated_fig = pio.to_templated(fig)\n", - "pio.templates['my_template'] = templated_fig.layout.template\n", - "pio.templates.default = 'my_template'\n", - "px.defaults.width = 100\n", - "px.defaults.height = 100\n", + "import plotly.io as pio\n", "pio.renderers.default = \"png\"\n", - "pio.renderers[\"png\"].width = 900\n", - "pio.renderers[\"png\"].height = 900\n", + "pio.renderers[\"png\"].width = 750\n", + "pio.renderers[\"png\"].height = 750\n", "\n", "alt.renderers.enable('png', webdriver='firefox')" ] @@ -292,8 +285,10 @@ }, "outputs": [], "source": [ - "px.histogram(mpg, y=\"manufacturer\", \n", - " title='Number of Cars by Make')" + "px.histogram(\n", + " mpg, y=\"manufacturer\", \n", + " title='Number of Cars by Make'\n", + ")" ] }, { @@ -407,7 +402,9 @@ }, "outputs": [], "source": [ - "px.histogram(mpg, x=\"cty\")" + "px.histogram(\n", + " mpg, x=\"cty\"\n", + ")" ] }, { @@ -538,12 +535,13 @@ }, "outputs": [], "source": [ - "px.scatter(mpg, x=\"displ\", y=\"hwy\", \n", - " title='Engine Displacement in Liters vs Highway MPG',\n", - " labels=dict(\n", - " displ='Engine Displacement in Liters', \n", - " hwy='Highway MPG')\n", - " )" + "px.scatter(\n", + " mpg, x=\"displ\", y=\"hwy\", \n", + " title='Engine Displacement in Liters vs Highway MPG',\n", + " labels=dict(\n", + " displ='Engine Displacement in Liters', \n", + " hwy='Highway MPG')\n", + ")" ] }, { @@ -682,7 +680,7 @@ "fig.add_trace(p2)\n", "fig.add_trace(p3)\n", "fig.add_trace(p4)\n", - "Image(fig.to_image(format=\"png\", width=900, height=900))" + "Image(fig.to_image(format=\"png\", width=750, height=750))" ] }, { @@ -821,12 +819,13 @@ }, "outputs": [], "source": [ - "px.scatter(mpg, x=\"displ\", y=\"hwy\", color=\"class\", \n", - " title='Engine Displacement in Liters vs Highway MPG',\n", - " labels=dict(\n", - " displ='Engine Displacement in Liters', \n", - " hwy='Highway MPG')\n", - " )" + "px.scatter(\n", + " mpg, x=\"displ\", y=\"hwy\", color=\"class\", \n", + " title='Engine Displacement in Liters vs Highway MPG',\n", + " labels=dict(\n", + " displ='Engine Displacement in Liters', \n", + " hwy='Highway MPG')\n", + ")" ] }, { @@ -869,7 +868,7 @@ "(\n", " alt.Chart(\n", " mpg,\n", - " title=\"Engine Displacement in Liters vs Highway MPG\",\n", + " title=\"City MPG vs Highway MPG\",\n", " )\n", " .mark_circle(opacity=0.3)\n", " .encode(\n", @@ -907,8 +906,8 @@ " y='hwy', \n", " s=10*mpg['cyl'],\n", " alpha=.5))\n", - "ax.set_title('Engine Displacement in Liters vs Highway MPG')\n", - "ax.set_xlabel('Engine Displacement in Liters')\n", + "ax.set_title('City MPG vs Highway MPG')\n", + "ax.set_xlabel('City MPG')\n", "ax.set_ylabel('Highway MPG');" ] }, @@ -941,10 +940,12 @@ }, "outputs": [], "source": [ - "px.scatter(mpg, x=\"cty\", y=\"hwy\", size=\"cyl\", size_max=10,\n", - " title='City MPG vs Highway MPG',\n", - " labels=dict(cty='City MPG', hwy='Highway MPG')\n", - " )" + "px.scatter(\n", + " mpg, x=\"cty\", y=\"hwy\", \n", + " size=\"cyl\", size_max=10,\n", + " title='City MPG vs Highway MPG',\n", + " labels=dict(cty='City MPG', hwy='Highway MPG')\n", + ")" ] }, { @@ -1045,7 +1046,10 @@ }, "outputs": [], "source": [ - "px.scatter(mpg, x=\"displ\", y=\"hwy\", facet_col=\"class\", facet_col_wrap=4)" + "px.scatter(\n", + " mpg, x=\"displ\", y=\"hwy\", \n", + " facet_col=\"class\", facet_col_wrap=4\n", + ")" ] }, { @@ -1150,9 +1154,11 @@ }, "outputs": [], "source": [ - "px.scatter(mpg, x=\"displ\", y=\"hwy\", \n", - " facet_col=\"cyl\", facet_row=\"drv\",\n", - " category_orders=dict(cyl=[4,5,6,8]))" + "px.scatter(\n", + " mpg, x=\"displ\", y=\"hwy\", \n", + " facet_col=\"cyl\", facet_row=\"drv\",\n", + " category_orders=dict(cyl=[4,5,6,8])\n", + ")" ] }, { @@ -1302,7 +1308,7 @@ " }\n", " }\n", "})\n", - "Image(fig.to_image(format=\"png\", width=900, height=900))" + "Image(fig.to_image(format=\"png\", width=750, height=750))" ] }, { @@ -1390,11 +1396,12 @@ }, "outputs": [], "source": [ - "px.histogram(diamonds, x=\"cut\", color=\"clarity\",\n", - " category_orders=dict(cut=[\n", - " \"Fair\", \"Good\", \"Very Good\", \n", - " \"Premium\", \"Ideal\"])\n", - " )" + "px.histogram(\n", + " diamonds, x=\"cut\", color=\"clarity\",\n", + " category_orders=dict(cut=[\n", + " \"Fair\", \"Good\", \"Very Good\", \n", + " \"Premium\", \"Ideal\"])\n", + ")" ] }, { @@ -1485,11 +1492,12 @@ }, "outputs": [], "source": [ - "px.histogram(diamonds, x=\"cut\", color=\"clarity\", barmode=\"group\",\n", - " category_orders=dict(cut=[\n", - " \"Fair\", \"Good\", \"Very Good\", \n", - " \"Premium\", \"Ideal\"])\n", - " )" + "px.histogram(\n", + " diamonds, x=\"cut\", color=\"clarity\", barmode=\"group\",\n", + " category_orders=dict(cut=[\n", + " \"Fair\", \"Good\", \"Very Good\", \n", + " \"Premium\", \"Ideal\"])\n", + ")" ] }, { @@ -1624,7 +1632,7 @@ ")\n", "for d in fig[\"data\"]:\n", " d.update({\"fill\": \"tozeroy\"})\n", - "Image(fig.to_image(format=\"png\", width=900, height=900))" + "Image(fig.to_image(format=\"png\", width=750, height=750))" ] }, { @@ -1687,7 +1695,9 @@ }, "outputs": [], "source": [ - "px.line(ts, x=\"date\", y=\"value\")" + "px.line(\n", + " ts, x=\"date\", y=\"value\"\n", + ")" ] }, { From 1a0be7e25fdb196289b421ba356387336d4a9ebd Mon Sep 17 00:00:00 2001 From: Tim Hopper Date: Thu, 15 Oct 2020 10:29:17 -0400 Subject: [PATCH 3/4] fix url --- templates/t_index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/t_index.html b/templates/t_index.html index 3d03407..2ab1978 100644 --- a/templates/t_index.html +++ b/templates/t_index.html @@ -63,7 +63,7 @@