Introducing Dash MCP + Building Dash Apps with Coding Agents. Reserve your spot.

Interactive charts for Python and JavaScript.
The open-source graphing libraries that the data visualization world is built on.

Python DocsJavaScript Docs
pip install plotly
npm i plotly.js

10M+

developers

50M+

monthly PyPI + npm

downloads

70K+

GitHub stars across libraries

#1

most popular interactive

charting library for Python

See them in action

Interactive charts. Try them right here.

Open source by default

One charting engine. 70+ chart types. Used by hundreds of thousands of developers, engineers, scientists and analysts across finance, healthcare & life sciences, energy & utilities, retail and manufacturing.

Used by every tool in the modern data stack

plotly.py and plotly.js are the engine behind interactive data visualization across the modern data stack

Python Frameworks

Dash, Plotly Studio, Plotly Express, Streamlit, Voila

Notebooks

Jupyter Notebook, Google Colab, Databricks Notebook, Azure Notebooks, Hex, Deepnote

AI Coding Tools & App Builders

Claude, ChatGPT, Cursor, Lovable, Bold, Replit, Retool

Languages

One API. Every language your team uses.

chart.py

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()

chart.js

JavaScript

import Plotly from 'plotly.js-dist-min';

const trace = {
  x: gdpPercap,
  y: lifeExp,
  mode: 'markers',
  marker: {
    size: pop,
    color: continentColor,
  },
  text: countries,
  type: 'scatter',
};

Plotly.newPlot('chart', [trace], {
  xaxis: { type: 'log', title: 'GDP per capita' },
  yaxis: { title: 'Life expectancy' },
});
plotly.py

The most-downloaded interactive charting library in Python. Pip install, fig.show(), done.

Python docs →

plotly.js

The pure-JavaScript engine underneath every Plotly figure. Embed in any web app - no Python required.

JS docs →

One spec, every language

The same JSON figure spec drives R, Julia, MATLAB, ggplot2, and F#. Author anywhere; render identically everywhere plotly.js runs.

All language bindings →

Interactive charts tell a story

Hover, zoom, pan, animate.
Every chart works in the browser. No JavaScript required.

Zoom, pan, and select

Every chart is explorable. Users can zoom into regions of interest, pan across datasets, and box-select data points — no extra code required.

Hover tooltips

Hovering reveals the data behind any point. Fully customizable templates let you show exactly the context your audience needs.

Client-side rendering

Charts render in the browser using WebGL and SVG. No server round-trips for interactions — everything is instant, even with millions of points.

Export anywhere

One click to download as PNG, SVG, or PDF. Every chart is presentation-ready and publication-quality without extra tooling.

Responsive and embeddable

Charts resize automatically. Embed them in Dash apps, notebooks, web pages, dashboards. Or export them as static images in PDF reports or Slack messages.

Themeable

Built-in templates for Plotly, Seaborn, ggplot2, and more. Create custom themes to match your brand and reuse them across every chart.

THE JOURNEY

From one chart to a production platform

Explore
Start with a chart

You have the data and you need to visualize it. Create a graph in Python, JavaScript, or Plotly Studio and share it as a screenshot.

Plotly graphing libraries ->

Build
Turn it into an app with Dash

Your chart is useful. Now your team wants filters, dropdowns, a login page, and a URL they can bookmark. Dash wraps your Plotly charts in a real web application — still pure Python, still the same chart API.

Learn about Dash →

Deploy
Ship it with Plotly Cloud or Dash Enterprise

You've used Plotly to build a chart and/or Dash to build a web application, now you need to share it. The easiest and fastest way to share it is with one click deployment to Plotly Cloud for instant hosting or Dash Enterprise on your own infrastructure.

See plan options →

Tech Specs

License

MIT (open source)

Form factor

Python and JavaScript libraries

Install

pip install plotlynpm i plotly.js-dist

Languages

Python (plotly.py) and JavaScript (plotly.js) plus community-maintained libraries in other languages

Chart types

70+ trace types: scientific, statistical, financial, 3D, geographic

Renders to

 Interactive HTML/JS, static SVG/PNG/JPEG/PDF, Dash apps, Plotly Studio, Jupyter widgets

Graphics Engine

WebGL and SVG

Performance

Millions of points via WebGL traces

Runs in

Python Framework & Wrappers, Notebooks, AI coding vibe coding tools and web browsers

Interactivity

Hover, zoom, pan, select, animate, crossfilter, click events

Theming

Built-in templates (plotly_white, plotly_dark, ggplot2, seaborn) + custom

Dependencies

plotly.py: pandas-compatible. plotly.js: zero runtime deps.

Bundle size

plotly.js full ~3.6 MB min+gzip; partial bundles ~250 kB

Source

plotly/plotly.pyplotly/plotly.js 

Start charting in three lines.

Read the quickstart →
bluesky logo
x logo
instagram logo
youtube logo
medium logo
facebook logo

Product

© 2026
Plotly. All rights reserved.
Cookie Preferences
AICPA Icon
ISO 27001
ISO 27701
ISO 42001