
plotly.py
A Python library for making interactive, browser-based charts and graphs.
- Stars
- 18.9k
- Forks
- 2.9k
- Licence
- MIT
- Language
- Python
- Last update
- 5 days ago
- Type
- Library
What it is
plotly.py is a Python library for creating interactive charts that open in a web browser. It is built on top of plotly.js and lets you describe a chart in code, then view it in Jupyter notebooks, as standalone HTML files, or inside Dash applications. The README says plotly.js provides over 30 chart types, including 3D, statistical, map and financial charts.
- Plot a bar chart from a list or dataframe with Plotly Express
- Build a figure step by step with Graph Objects
- Save a chart as a standalone HTML file
- Show a Plotly chart inside a Jupyter notebook or marimo notebook
- Export static images with Kaleido after installing it
Great for
- Python users who want hoverable, zoomable charts without writing JavaScript
- Data analysts working in Jupyter notebooks
- People building shareable HTML charts for reports
- Developers embedding charts in Dash dashboards
Not ideal for
- People who only need static images for print; the README points to a separate Kaleido package and a Chrome install for that, which adds setup
- Users who need a non-Python language; this project is Python-specific
- Projects needing a built-in dashboard server on its own, since the README links Dash as a separate product
How to get it
- 1
Install with a package manager
You'll need: Python
Install plotly with pip
pip install plotlyInstall with Plotly Express support
pip install plotly[express]Install kaleido for static image export
pip install -U kaleido - 2
Run it
- Install plotly with pip install plotly
- Run the Graph Objects example: import plotly.graph_objects as go, build a figure, then call fig.show()
- Or install plotly[express] and run px.bar(x=["a", "b", "c"], y=[1, 3, 2]).show()
- Install a supported dataframe library if you plan to pass dataframes to Plotly Express
- 3
Get the most out of it
- Use Plotly Express for quick charts and drop to Graph Objects when you need fine control
- Render charts inside Jupyter by installing jupyter and anywidget, as the README describes
- Export static images with kaleido (version 1.0 or greater) for reports
- Embed charts in Dash applications for interactive dashboards
- Consult the official Python documentation linked in the README for more examples
Downloads
Strengths
- Charts are interactive by default, so users can hover, zoom and inspect data
- Two APIs: a short high-level one (Plotly Express) and a detailed one (Graph Objects)
- Licensed under MIT with a large community and active maintenance
Trade-offs
- Static image export needs an extra package and a Chrome or Chromium install
- Interactive charts depend on a browser, so they are less suited to fully offline or print-only workflows
- The README is truncated here, so detailed API coverage and version-specific changes were not verified
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| plotly.py (this) | 18.9k | Library | beginner | 5 days ago | Python users who want hoverable, zoomable charts without writing JavaScript |
| plotly.js | 18.4k | Library | beginner | 7 days ago | Web developers who want interactive charts in their own site or app |
| visx | 21.1k | Library | intermediate | 5 months ago | React developers who want full control over how a chart looks and behaves |
| deck.gl | 14.7k | Library | intermediate | 4 days ago | Developers building interactive maps or geospatial dashboards over large data sets |
| G2 | 12.7k | Library | intermediate | 8 days ago | Front-end developers adding charts to a web dashboard |
| recharts | 27.7k | Library | beginner | 4 days ago | React developers who need standard charts such as line, bar or similar graphs in a web app |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.