plotly.py:浏览器原生的交互式 Python 可视化库

数据可视化领域的选择很多,plotly.py 是其中一个定位比较明确的项目。由 Plotly 公司维护,GitHub 上积累了 18,569 颗星,基于 plotly.js 构建,生成的图表直接运行在浏览器中,天然支持交互和缩放。

正文顶部截图

plotly.py 的交互能力是它和静态图表库拉开距离的地方。鼠标悬停显示数据点的具体数值,点击图例隐藏或显示数据系列,拖拽框选区域进行放大。这些操作不需要额外配置,图表生成后自带完整的交互行为。对于探索性数据分析场景,即时交互反馈比静态图表高效得多。

底层方面,plotly.py 调用 plotly.js 渲染图表。plotly.js 支持超过 30 种图表类型,覆盖了日常分析和科研场景中的主要需求。从基础的柱状图和折线图,到 3D 散点图和地理信息可视化,再到金融领域的 K 线图和统计分布图,基本不需要切换其他库。

API 设计上,plotly.py 提供两套接口。plotly.express 模块走简洁路线,三行代码就能生成一张可交互的图表:导入库,创建图表对象,调用 show 方法。plotly.graph_objects 模块则提供更细粒度的控制能力,适合需要精确调整图表样式和布局的高级用户。

README区域截图

运行环境方面,plotly.py 支持的场景比较丰富。在 Jupyter Notebook 或 marimo 这类交互式 Python 环境中可以直接内嵌渲染;也可以导出为独立的 HTML 文件;搭配 Plotly 自家的 Dash 框架,还能构建数据驱动的 Web 应用。Jupyter 环境下使用需要额外安装 jupyter 和 anywidget 包来启用 widget 模式。

静态图片导出也是实际工作中常见的需求。plotly.py 推荐使用 Kaleido 包处理导出任务,支持 PNG、JPEG、SVG、PDF 等多种格式。Kaleido 没有外部依赖,安装简单。旧版的 orca 工具自 plotly 4.9 版本起已标记为遗留方案。

安装流程很直接,标准的 pip install plotly 一行命令即可。如果需要地理信息可视化中的县级着色功能,则要额外安装 plotly-geo 包获取地理形状文件。

从技术架构看,plotly.py 的定位是 Python 和 JavaScript 之间的桥梁。Python 端负责数据处理和图表配置,JavaScript 端负责浏览器中的渲染和交互。这套分工让 Python 数据科学社区可以用熟悉的语言操作图表,同时获得 Web 技术栈的交互体验。

项目使用 MIT 许可证,对个人项目和商业产品都足够友好。文档方面,官网提供完整的 Python API 参考和大量使用示例,社区论坛活跃度也较高,遇到问题有地方可查。

综合来看,plotly.py 适合需要在 Python 工作流中引入交互式图表的场景,尤其是结果需要分享、嵌入网页,或者在 Jupyter 环境中做探索性分析的团队和个人。

Jupyter 环境中做探索性分析的团队和个人。

更多推荐