--- jupyter: jupytext: notebook_metadata_filter: all text_representation: extension: .md format_name: markdown format_version: '1.2' jupytext_version: 1.3.1 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.6.8 plotly: description: Plotly Express is a terse, consistent, high-level API for rapid data exploration and figure generation. display_as: file_settings language: python layout: base name: Plotly Express order: 4 page_type: example_index permalink: python/plotly-express/ thumbnail: thumbnail/plotly-express.png --- ### Plotly Express Plotly Express is the easy-to-use, high-level interface to Plotly, which [operates on a variety of types of data](/python/px-arguments/) and produces [easy-to-style figures](/python/styling-plotly-express/). Every Plotly Express function returns a `graph_objects.Figure` object whose `data` and `layout` has been pre-populated according to the provided arguments. > **Note**: Plotly Express was previously its own separately-installed `plotly_express` package but is now part of `plotly` and importable via `import plotly.express as px`. This notebook demonstrates various `plotly.express` features. [Reference documentation](https://plotly.com/python-api-reference/plotly.express.html) is also available, as well as a [tutorial on input argument types](/python/px-arguments) and one on how to [style figures made with Plotly Express](/python/styling-plotly-express/). You can also read our original [Medium announcement article](https://medium.com/@plotlygraphs/introducing-plotly-express-808df010143d) for more information on this library. #### A single import, with built-in datasets ```python import plotly.express as px print(px.data.iris.__doc__) px.data.iris().head() ``` #### Scatter and Line plots Refer to the main [scatter and line plot page](/python/line-and-scatter/) for full documentation. ```python import plotly.express as px df = px.data.iris() fig = px.scatter(df, x="sepal_width", y="sepal_length") fig.show() ``` ```python import plotly.express as px df = px.data.iris() fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species") fig.show() ``` ```python import plotly.express as px df = px.data.iris() fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species", marginal_y="rug", marginal_x="histogram") fig ``` ```python import plotly.express as px df = px.data.iris() fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species", marginal_y="violin", marginal_x="box", trendline="ols") fig.show() ``` ```python import plotly.express as px df = px.data.iris() df["e"] = df["sepal_width"]/100 fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species", error_x="e", error_y="e") fig.show() ``` ```python import plotly.express as px df = px.data.tips() fig = px.scatter(df, 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"]}) fig.show() ``` ```python import plotly.express as px df = px.data.iris() fig = px.scatter_matrix(df) fig.show() ``` ```python import plotly.express as px df = px.data.iris() fig = px.scatter_matrix(df, dimensions=["sepal_width", "sepal_length", "petal_width", "petal_length"], color="species") fig.show() ``` ```python import plotly.express as px df = px.data.iris() fig = px.parallel_coordinates(df, 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) fig.show() ``` ```python import plotly.express as px df = px.data.tips() fig = px.parallel_categories(df, color="size", color_continuous_scale=px.colors.sequential.Inferno) fig.show() ``` ```python import plotly.express as px df = px.data.tips() fig = px.scatter(df, x="total_bill", y="tip", color="size", facet_col="sex", color_continuous_scale=px.colors.sequential.Viridis, render_mode="webgl") fig.show() ``` ```python import plotly.express as px df = px.data.gapminder() fig = px.scatter(df.query("year==2007"), x="gdpPercap", y="lifeExp", size="pop", color="continent", hover_name="country", log_x=True, size_max=60) fig.show() ``` ```python import plotly.express as px df = px.data.gapminder() fig = px.scatter(df, 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]) fig.show() ``` ```python import plotly.express as px df = px.data.gapminder() fig = px.line(df, x="year", y="lifeExp", color="continent", line_group="country", hover_name="country", line_shape="spline", render_mode="svg") fig.show() ``` ```python import plotly.express as px df = px.data.gapminder() fig = px.area(df, x="year", y="pop", color="continent", line_group="country") fig.show() ``` #### Visualize Distributions Refer to the main [statistical graphs page](/python/statistical-charts/) for full documentation. ```python import plotly.express as px df = px.data.iris() fig = px.density_contour(df, x="sepal_width", y="sepal_length") fig.show() ``` ```python import plotly.express as px df = px.data.iris() fig = px.density_contour(df, x="sepal_width", y="sepal_length", color="species", marginal_x="rug", marginal_y="histogram") fig.show() ``` ```python import plotly.express as px df = px.data.iris() fig = px.density_heatmap(df, x="sepal_width", y="sepal_length", marginal_x="rug", marginal_y="histogram") fig.show() ``` ```python import plotly.express as px df = px.data.tips() fig = px.bar(df, x="sex", y="total_bill", color="smoker", barmode="group") fig.show() ``` ```python import plotly.express as px df = px.data.tips() fig = px.bar(df, x="sex", y="total_bill", color="smoker", barmode="group", facet_row="time", facet_col="day", category_orders={"day": ["Thur", "Fri", "Sat", "Sun"], "time": ["Lunch", "Dinner"]}) fig.show() ``` ```python import plotly.express as px df = px.data.tips() fig = px.histogram(df, x="total_bill", y="tip", color="sex", marginal="rug", hover_data=df.columns) fig.show() ``` ```python import plotly.express as px df = px.data.tips() fig = px.histogram(df, x="sex", y="tip", histfunc="avg", color="smoker", barmode="group", facet_row="time", facet_col="day", category_orders={"day": ["Thur", "Fri", "Sat", "Sun"], "time": ["Lunch", "Dinner"]}) fig.show() ``` ```python import plotly.express as px df = px.data.tips() fig = px.strip(df, x="total_bill", y="time", orientation="h", color="smoker") fig.show() ``` ```python import plotly.express as px df = px.data.tips() fig = px.box(df, x="day", y="total_bill", color="smoker", notched=True) fig.show() ``` ```python import plotly.express as px df = px.data.tips() fig = px.violin(df, y="tip", x="smoker", color="sex", box=True, points="all", hover_data=df.columns) fig.show() ``` #### Ternary Coordinates ```python import plotly.express as px df = px.data.election() fig = px.scatter_ternary(df, a="Joly", b="Coderre", c="Bergeron", color="winner", size="total", hover_name="district", size_max=15, color_discrete_map = {"Joly": "blue", "Bergeron": "green", "Coderre":"red"} ) fig.show() ``` ```python import plotly.express as px df = px.data.election() fig = px.line_ternary(df, a="Joly", b="Coderre", c="Bergeron", color="winner", line_dash="winner") fig.show() ``` ### Images ```python import plotly.express as px import numpy as np img_rgb = np.array([[[255, 0, 0], [0, 255, 0], [0, 0, 255]], [[0, 255, 0], [0, 0, 255], [255, 0, 0]] ], dtype=np.uint8) fig = px.imshow(img_rgb) fig.show() ``` #### 3D Coordinates ```python import plotly.express as px df = px.data.election() fig = px.scatter_3d(df, x="Joly", y="Coderre", z="Bergeron", color="winner", size="total", hover_name="district", symbol="result", color_discrete_map = {"Joly": "blue", "Bergeron": "green", "Coderre":"red"}) fig.show() ``` ```python import plotly.express as px df = px.data.election() fig = px.line_3d(df, x="Joly", y="Coderre", z="Bergeron", color="winner", line_dash="winner") fig.show() ``` #### Polar Coordinates ```python import plotly.express as px df = px.data.wind() fig = px.scatter_polar(df, r="frequency", theta="direction", color="strength", symbol="strength", color_discrete_sequence=px.colors.sequential.Plasma_r) fig.show() ``` ```python import plotly.express as px df = px.data.wind() fig = px.line_polar(df, r="frequency", theta="direction", color="strength", line_close=True, color_discrete_sequence=px.colors.sequential.Plasma_r) fig.show() ``` ```python import plotly.express as px df = px.data.wind() fig = px.bar_polar(df, r="frequency", theta="direction", color="strength", template="plotly_dark", color_discrete_sequence= px.colors.sequential.Plasma_r) fig.show() ``` #### Maps ```python import plotly.express as px px.set_mapbox_access_token(open(".mapbox_token").read()) df = px.data.carshare() fig = px.scatter_mapbox(df, lat="centroid_lat", lon="centroid_lon", color="peak_hour", size="car_hours", color_continuous_scale=px.colors.cyclical.IceFire, size_max=15, zoom=10) fig.show() ``` ```python import plotly.express as px px.set_mapbox_access_token(open(".mapbox_token").read()) df = px.data.carshare() fig = px.line_mapbox(df, lat="centroid_lat", lon="centroid_lon", color="peak_hour") fig.show() ``` ```python import plotly.express as px df = px.data.gapminder() fig = px.scatter_geo(df, locations="iso_alpha", color="continent", hover_name="country", size="pop", animation_frame="year", projection="natural earth") fig.show() ``` ```python import plotly.express as px df = px.data.gapminder() fig = px.line_geo(df.query("year==2007"), locations="iso_alpha", color="continent", projection="orthographic") fig.show() ``` ```python import plotly.express as px df = px.data.gapminder() fig = px.choropleth(df, locations="iso_alpha", color="lifeExp", hover_name="country", animation_frame="year", range_color=[20,80]) fig.show() ```