#!/usr/bin/env python # coding: utf-8 # # Plotly Express Gallery # # Plotly Express is a terse, consistent, high-level wrapper around [Plotly.py](https://plot.ly/python) for rapid data exploration and figure generation. # # This notebook demonstrates various `plotly_express` features. [Reference documentation](https://plotly.github.io/plotly_express/plotly_express/) and a [step by step walkthrough notebook](https://nbviewer.jupyter.org/github/plotly/plotly_express/blob/master/walkthrough.ipynb) are also available. # # You can also read our [Medium announcement article](https://medium.com/@plotlygraphs/introducing-plotly-express-808df010143d) for more information on this library. # ## A single import # In[1]: import plotly_express as px # ## Built-in sample datasets # In[2]: print(px.data.iris.__doc__) iris = px.data.iris() # In[3]: tips = px.data.tips() gapminder = px.data.gapminder() election = px.data.election() wind = px.data.wind() carshare = px.data.carshare() # ## Scatter and Line plots # In[4]: px.scatter(iris, x="sepal_width", y="sepal_length") # In[5]: px.scatter(iris, x="sepal_width", y="sepal_length", color="species") # In[6]: px.scatter(iris, x="sepal_width", y="sepal_length", color="species", marginal_y="violin", marginal_x="rug") # In[7]: px.scatter(iris, x="sepal_width", y="sepal_length", color="species", marginal_y="violin", marginal_x="box", trendline="ols") # In[8]: iris["e"] = iris["sepal_width"]/100 px.scatter(iris, x="sepal_width", y="sepal_length", color="species", error_x="e", error_y="e") # In[9]: del iris["e"] # In[10]: px.scatter(tips, x="total_bill", y="tip", facet_row="time", facet_col="day", color="smoker", trendline="ols", category_orders={"day": ["Thur", "Fri", "Sat", "Sun"], "time": ["Lunch", "Dinner"]}) # In[11]: px.scatter_matrix(iris) # In[12]: px.scatter_matrix(iris, dimensions=["sepal_width", "sepal_length", "petal_width", "petal_length"], color="species") # In[13]: px.parallel_coordinates(iris, color="species_id", labels={"species_id": "Species", "sepal_width": "Sepal Width", "sepal_length": "Sepal Length", "petal_width": "Petal Width", "petal_length": "Petal Length", }, color_continuous_scale=px.colors.diverging.Tealrose, color_continuous_midpoint=2) # In[14]: px.parallel_categories(tips, color="size", color_continuous_scale=px.colors.sequential.Inferno) # In[15]: px.scatter(tips, x="total_bill", y="tip", color="size", facet_col="sex", color_continuous_scale=px.colors.sequential.Viridis, render_mode="webgl") # In[16]: px.scatter(gapminder.query("year==2007"), x="gdpPercap", y="lifeExp", size="pop", color="continent", hover_name="country", log_x=True, size_max=60) # In[17]: px.scatter(gapminder, x="gdpPercap", y="lifeExp", animation_frame="year", animation_group="country", size="pop", color="continent", hover_name="country", facet_col="continent", log_x=True, size_max=45, range_x=[100,100000], range_y=[25,90]) # In[18]: px.line(gapminder, x="year", y="lifeExp", color="continent", line_group="country", hover_name="country", line_shape="spline") # ## Visualize Distributions # In[19]: px.density_contour(iris, x="sepal_width", y="sepal_length") # In[20]: px.density_contour(iris, x="sepal_width", y="sepal_length", color="species") # In[21]: px.density_contour(tips, x="total_bill", y="tip", color="day", facet_col="day") # In[22]: px.bar(tips, x="total_bill", y="sex", orientation="h", color="smoker") # In[23]: px.histogram(tips, x="total_bill", y="tip") # In[24]: px.histogram(tips, x="sex", y="tip", color="smoker", facet_row="day", orientation="v", barmode="group", category_orders={"day": ["Thur", "Fri", "Sat", "Sun"]}) # In[25]: px.histogram(tips, x="total_bill", y="tip", histfunc="sum", color="smoker") # In[26]: px.histogram(tips, x="total_bill", color="smoker", facet_row="day", facet_col="time") # In[27]: px.box(tips, x="total_bill", y="day", orientation="h", color="smoker", notched=True, category_orders={"day": ["Thur", "Fri", "Sat", "Sun"]}) # In[28]: px.violin(tips, y="tip", x="smoker", color="sex", box=True, points="all") # In[29]: px.violin(tips, y="tip", x="sex", color="smoker", facet_row="day") # In[30]: px.violin(tips, y="tip", x="sex", color="smoker", facet_col="day", facet_row="time") # In[31]: px.box(tips, y="tip", x="sex") # In[32]: px.box(tips, y="tip", x="sex", color="smoker", facet_col="day", facet_row="time", category_orders={"day": ["Thur", "Fri", "Sat", "Sun"], "time": ["Lunch", "Dinner"]}) # In[33]: px.box(tips, x="tip", y="sex", color="smoker", facet_col="day", facet_row="time", orientation="h") # ## Ternary Coordinates # In[34]: px.scatter_ternary(election, a="Joly", b="Coderre", c="Bergeron", color="winner", size="total", hover_name="district", symbol="result", size_max=15, color_discrete_map = {"Joly": "blue", "Bergeron": "green", "Coderre":"red"} ) # In[35]: px.line_ternary(election, a="Joly", b="Coderre", c="Bergeron", color="winner", line_dash="winner") # ## 3D Coordinates # In[36]: px.scatter_3d(election, x="Joly", y="Coderre", z="Bergeron", color="winner", size="total", hover_name="district", symbol="result", color_discrete_map = {"Joly": "blue", "Bergeron": "green", "Coderre":"red"}) # In[37]: px.line_3d(election, x="Joly", y="Coderre", z="Bergeron", color="winner", line_dash="winner") # ## Polar Coordinates # In[38]: px.scatter_polar(wind, r="value", theta="direction", color="strength", symbol="strength", color_discrete_sequence=px.colors.sequential.Plotly[-2::-1]) # In[39]: px.line_polar(wind, r="value", theta="direction", color="strength", line_close=True, color_discrete_sequence=px.colors.sequential.Plotly[-2::-1]) # In[40]: px.bar_polar(wind, r="value", theta="direction", color="strength", template="plotly_dark", color_discrete_sequence= px.colors.sequential.Plotly[-2::-1]) # ## Maps # In[41]: px.set_mapbox_access_token(open(".mapbox_token").read()) px.scatter_mapbox(carshare, lat="centroid_lat", lon="centroid_lon", color="peak_hour", size="car_hours", color_continuous_scale=px.colors.cyclical.IceFire, size_max=15, zoom=10) # In[42]: px.set_mapbox_access_token(open(".mapbox_token").read()) px.line_mapbox(carshare, lat="centroid_lat", lon="centroid_lon", color="peak_hour") # In[43]: px.scatter_geo(gapminder, locations="iso_alpha", color="continent", hover_name="country", size="pop", animation_frame="year", projection="natural earth") # In[44]: px.line_geo(gapminder.query("year==2007"), locations="iso_alpha", color="continent", projection="orthographic") # In[45]: px.choropleth(gapminder, locations="iso_alpha", color="lifeExp", hover_name="country", animation_frame="year", color_continuous_scale=px.colors.sequential.Plasma) # ## Built-in Color Scales and Sequences (and a way to see them!) # In[46]: px.colors.qualitative.swatches() # In[47]: px.colors.sequential.swatches() # In[48]: px.colors.diverging.swatches() # In[49]: px.colors.cyclical.swatches() # In[50]: px.colors.colorbrewer.swatches() # In[51]: px.colors.cmocean.swatches() # In[52]: px.colors.carto.swatches() # # Next steps # # Phew, you've made it this far! If you want to use Plotly Express yourself, just `pip install plotly_express` to install it and head on over to our [reference documentation](https://plotly.github.io/plotly_express/plotly_express/) or just copy-paste from the examples above!