当前位置:首页>python>Python 库巡礼 | Plotly:让数据"动"起来

Python 库巡礼 | Plotly:让数据"动"起来

  • 2026-09-08 17:39:08
Python 库巡礼 | Plotly:让数据"动"起来
Python的第三方库生态非常强大,涉及数据分析,机器学习,Web开发,可视化,自然语言,图像处理,自动化办公等。通过pip等包管理工具快速安装和升级,大幅提升了开发效率,并推动了跨学科应用的普及!
今天我们看下Plotly,支持鼠标悬停显示具体数值,缩放看细节,点一下隐藏某个系列等“交互式”能力!

01 Plotly 是什么?

简单说,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 能力

02 为什么选择 Plotly?

1. 交互性开箱即用

不需要额外配置,生成的图表默认支持:

  • 鼠标悬停显示数据详情
  • 拖拽缩放
  • 双击重置视图
  • 点击图例显示/隐藏数据系列
  • 框选区域放大
  • 下载为 PNG/SVG

2. 语法简洁

Plotly Express(高层 API)让复杂图表变得简单:

# 传统方式需要几十行,现在几行搞定fig = px.line(df, x="date", y="value", color="category",              title="趋势分析",               labels={"value": "数值", "date": "日期"})

3. 生态整合能力强

  • Jupyter Notebook:直接嵌入显示
  • Dash:基于 Plotly 的 Web 应用框架,不用写前端就能做数据看板
  • Streamlit:完美兼容
  • Pandas:直接接受 DataFrame

03 实战:从静态到交互

场景:销售数据分析

假设你有一份销售数据,需要展示不同产品的月度销售额。

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()
Plotly 版本:
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,就能做出让人愿意"玩"的图表。

让人愿意探索的数据,才更可能被理解。


过往文章/合集

合集

文章

Python编程小技巧

Python编程小技巧--用Python查询天气

Python编程小技巧--定制你的gif动图

Python--数据/图像可视化

Python编程小技巧--雷达图

报表"不直观"?20行Python代码做出高颜值KPI仪表盘,惊艳全场!

Python数据可视化--绘制树状图(电商品类销售分析)

Python编程基础算法

Python编程基础算法--斐波那契数列的矩阵算法

Python编程基础算法--LeetCode编辑距离问题

细数那些经典教材

细数那些经典教材--算法与数据结构

细数那些经典教材--编程竞赛

细数那些经典教材--机器学习入门就劝退?这几本“神书”帮你少走弯路!

细数那些经典科普书 | 量子物理史话与薛定谔的猫

Python库巡礼

Python库巡礼--PySpark

Python 库巡礼--matplotlib:数据可视化的基石

Python与数学之美

Python与数学之美--可视化理解导数本质

Python与数学之美--星形线(来自300年前的"完美曲线")

Python与数学之美 | 黎曼和积分

Python与办公自动化
Python与办公自动化--批量生成报告/通知
Python与办公自动化--核对两张万行数据表的差异
Python与办公自动化--PDF的合并与拆分
计算机科学人物志
计算机科学人物志--图灵(理论起源)
计算机科学人物志 | Dijkstra:在混乱的世界里构建秩序

最新文章

随机文章