📊 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 | 二维关系强度显示 |