
简单说,Plotly 是一个交互式可视化库。
它生成的图表不是图片,而是可以在浏览器中缩放、平移、悬停查看数据、点击图例筛选的 HTML 文件。比如下面这个简单例子
import plotly.express as px# 三行代码,生成可交互的散点图df = px.data.iris()fig = px.scatter(df, x="sepal_width", y="sepal_length",color="species", size="petal_length")fig.show()
运行后,浏览器会打开一个页面,你的图表就在那里——可以交互的那种。
其发展历程大致如下
时间 | 关键里程碑 |
|---|---|
2012-2014 | 公司成立,发布 Python SDK, 定位云端协作,需 API Key 和联网,基于 D3.js |
2015-2016 | 发布 plotly.js,支持离线模式,转向 WebGL 渲染,支持本地使用,无需账号,性能大幅提升 |
2017 | 推出 Dash 框架,从"画图库"升级为"应用开发平台",纯 Python 构建 Web 应用 |
2019 | 发布 Plotly Express (v4.0),高层 API 简化语法,1 行代码绘图,门槛大幅降低 |
2020-至今 | Dash Enterprise,性能优化,企业级部署方案,支持千万级数据,集成 AI/LLM 能力 |
不需要额外配置,生成的图表默认支持:
Plotly Express(高层 API)让复杂图表变得简单:
# 传统方式需要几十行,现在几行搞定fig = px.line(df, x="date", y="value", color="category",title="趋势分析",labels={"value": "数值", "date": "日期"})
假设你有一份销售数据,需要展示不同产品的月度销售额。
Matplotlib 版本:
import matplotlib.pyplot as pltplt.figure(figsize=(10, 6))plt.plot(months, product_a, label='产品A')plt.plot(months, product_b, label='产品B')plt.xlabel('月份')plt.ylabel('销售额')plt.legend()plt.show()
import plotly.express as pxfig = px.line(df, x='month', y='sales', color='product',title='月度销售趋势',labels={'sales': '销售额(万元)', 'month': '月份'})fig.update_layout(hovermode='x unified') # 悬停时显示所有系列fig.show()
差别在哪?Plotly 版本中,你可以:
Plotly 的价值,在于降低了交互式可视化的门槛,不需要写前端代码,只需要 Python,就能做出让人愿意"玩"的图表。
让人愿意探索的数据,才更可能被理解。
合集 | 文章 |
|---|---|