Plotly
Plotly is an interactive, open-source data visualization library for Python, built on top of the Plotly JavaScript library (plotly.js). It supports over 40 unique chart types, enabling users to create rich, interactive web-based visualizations that can be displayed in Jupyter notebooks, saved as standalone HTML files, or integrated into pure Python web applications using Dash. Currently at version 6.6.0, Plotly maintains an active development and release cadence.
Warnings
- breaking Plotly.py 6.0 dropped support for Jupyter Notebook versions prior to 7.0. Users on older Jupyter versions will need to upgrade.
- breaking Plotly.py 6.0 introduced a rewrite of dataframe performance using the Narwhals abstraction layer instead of solely relying on the Pandas API. While generally providing performance gains, this might subtly affect direct Pandas dataframe interactions for users upgrading from older versions.
- breaking Plotly.js 3.0 (which plotly.py 6.0 is built upon) removed support for several deprecated attributes (e.g., `titlefont`, `titleposition`, `titleside`, `titleoffset`) and specific trace types like `pointcloud` and `heatmapgl`.
- gotcha For static image export of Plotly figures (e.g., to PNG, JPEG, SVG, PDF), the `kaleido` package is the recommended engine since Plotly 4.9. The older `orca` command-line utility is now considered legacy and may have compatibility issues.
- gotcha When creating figures, `plotly.express` automatically infers sensible defaults and is much more concise (5-100 times less code) than building figures directly with `plotly.graph_objects`. Using `go` requires explicit definition of traces and layout.
Install
-
pip install plotly -
pip install 'plotly[kaleido]' # For static image export pip install plotly-geo # For extended geographic features
Imports
- plotly.express
import plotly.express as px
- plotly.graph_objects
import plotly.graph_objects as go
- plotly.io
import plotly.io as pio
Quickstart
import plotly.express as px # Create a simple bar chart fig = px.bar(x=["A", "B", "C"], y=[1, 3, 2], title="My First Plotly Chart") # Display the figure (opens in browser/notebook) fig.show()