跳到主要内容

📊 Plotly:交互式可视化库

Plotly 是一个强大的图形库,可以创建高质量的交互式图表,适用于 Web 数据展示、Jupyter Notebook 分析和可视化仪表盘。相比 Matplotlib 和 Seaborn,Plotly 重点在于“交互性”。


✅ Plotly 解决了什么问题?

传统 Matplotlib 图像是静态的,不能直接交互。Plotly 的优势是:

  • 🖱️ 鼠标悬停提示、缩放、导出等交互功能
  • 🌐 输出为 HTML,适合网页、报告嵌入
  • 📦 支持 3D 图、地图、热图、极坐标图等

📦 安装

pip install plotly

1️⃣ 基本折线图

导入 plotly.express 作为 px

# 创建折线图
= px.折线图(
数据框={"年份": [2020, 2021, 2022], "销售额": [100, 150, 200]},
x="年份",
y="销售额",
标题="年销售额变化"
)
.显示()

2️⃣ 散点图 Scatter

= px.散点图(px.内置数据集("iris"),
x="sepal_width", y="sepal_length", 色彩="species",
标题="鸢尾花特征")
.显示()

3️⃣ 柱状图 Bar

= px.柱状图(
数据框={"城市": ["北京", "上海", "深圳"], "人口": [2154, 2423, 1300]},
x="城市", y="人口", 标题="城市人口")
.显示()

4️⃣ 饼图 Pie

= px.饼图(
数据框={"部门": ["技术", "市场", "人事"], "人数": [50, 30, 20]},
名字="部门",="人数", 标题="员工构成")
.显示()

5️⃣ 箱线图 Box

= px.箱线图(px.内置数据集("tips"),
x="day", y="total_bill", 色彩="sex",
标题="每日消费分布")
.显示()

6️⃣ 热力图 Heatmap(使用 Graph Objects)

plotly.graph_objects 导入 Heatmap, 图表

= 图表(数据=[Heatmap(
z=[[1, 20, 30], [20, 1, 60], [30, 60, 1]],
x=["星期一", "星期二", "星期三"],
y=["早班", "中班", "晚班"]
)])
.显示()

🎨 自定义主题 & 中文支持

Plotly 默认不支持中文字体,可以设置字体:

.update_layout(字体={"家庭": "SimHei", "大小": 16})

🌐 输出为 HTML 页面

.写入_html("图表.html", 自动打开=True)

🔚 小结

图类型函数名特点
折线图px.line显示趋势
散点图px.scatter变量间关系
柱状图px.bar分类值比较
饼图px.pie占比显示
箱线图px.box离群值、分布
热力图go.Heatmap二维关系强度显示