上一篇
Python Plotly库使用教程 - 交互式数据可视化指南
- Python
- 2025-07-19
- 567
Python Plotly库使用教程
创建专业、交互式的数据可视化图表
什么是Plotly?
Plotly是一个基于Python的开源数据可视化库,能够创建丰富、交互式的图表。它支持多种图表类型,包括折线图、散点图、柱状图、饼图、热力图、3D图表等。
主要特点:
- 高度交互性(缩放、平移、悬停查看数据)
- 支持多种输出格式(HTML、图片、Jupyter Notebook)
- 专业美观的默认样式
- 与Pandas无缝集成
- 支持3D和地理空间可视化
安装Plotly
使用pip安装Plotly:
pip install plotly
安装完成后,在Python中导入:
import plotly.graph_objects as go
import plotly.express as px
基础图表示例
折线图
import plotly.graph_objects as go
# 创建数据
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
# 创建图表
fig = go.Figure()
fig.add_trace(go.Scatter(x=x, y=y, mode='lines+markers',
name='平方数', line=dict(color='royalblue', width=3)))
# 设置布局
fig.update_layout(title='平方数折线图',
xaxis_title='X轴',
yaxis_title='Y轴')
# 显示图表
fig.show()
柱状图
import plotly.express as px
# 创建数据
data = {
"月份": ["1月", "2月", "3月", "4月", "5月"],
"销售额": [120, 150, 180, 90, 200],
"产品": ["A", "B", "A", "B", "A"]
}
# 创建柱状图
fig = px.bar(data, x='月份', y='销售额',
color='产品', barmode='group',
title='月度销售额')
# 显示图表
fig.show()
散点图
import plotly.express as px
import numpy as np
# 生成随机数据
np.random.seed(42)
x = np.random.rand(100)
y = x * 2 + np.random.randn(100) * 0.3
# 创建散点图
fig = px.scatter(x=x, y=y, trendline='ols',
title='散点图示例',
labels={'x': '自变量', 'y': '因变量'})
# 显示图表
fig.show()
饼图
import plotly.express as px
# 创建数据
data = {
"类别": ["电子产品", "服装", "食品", "书籍", "其他"],
"销售额": [350, 220, 180, 120, 130]
}
# 创建饼图
fig = px.pie(data, names='类别', values='销售额',
title='销售类别分布',
hole=0.3) # 创建环形图
# 显示图表
fig.show()
高级图表
3D散点图
import plotly.express as px
import numpy as np
# 生成3D数据
np.random.seed(42)
x = np.random.rand(100)
y = np.random.rand(100)
z = x * y + np.random.randn(100) * 0.1
# 创建3D散点图
fig = px.scatter_3d(x=x, y=y, z=z,
title='3D散点图示例',
labels={'x': 'X', 'y': 'Y', 'z': 'Z'})
# 显示图表
fig.show()
热力图
import plotly.express as px
import numpy as np
# 创建数据
data = np.random.rand(10, 10)
# 创建热力图
fig = px.imshow(data,
labels=dict(x="X轴", y="Y轴", color="值"),
x=[f'Col{i+1}' for i in range(10)],
y=[f'Row{i+1}' for i in range(10)],
title='随机数据热力图')
# 显示图表
fig.show()
图表定制与导出
自定义图表样式
import plotly.graph_objects as go
# 创建柱状图
fig = go.Figure(data=[
go.Bar(name='产品A', x=['1月', '2月', '3月'], y=[20, 14, 25], marker_color='indigo'),
go.Bar(name='产品B', x=['1月', '2月', '3月'], y=[12, 18, 29], marker_color='crimson')
])
# 自定义布局
fig.update_layout(
title='产品月度销售对比',
title_font_size=24,
title_font_color='darkblue',
xaxis_title='月份',
yaxis_title='销售额 (万元)',
font=dict(family='Arial', size=14, color='black'),
barmode='group',
plot_bgcolor='rgba(240,240,240,0.9)',
paper_bgcolor='rgba(255,255,255,0.9)',
legend=dict(orientation='h', yanchor='bottom', y=1.02, xanchor='right', x=1)
)
# 显示图表
fig.show()
导出图表
# 导出为HTML文件
fig.write_html("chart.html")
# 导出为图片(需要安装orca)
# fig.write_image("chart.png")
# 导出为PDF
# fig.write_image("chart.pdf")
# 在Jupyter Notebook中显示
# fig.show()
Plotly vs. Matplotlib
特性 | Plotly | Matplotlib |
---|---|---|
交互性 | 高(缩放、悬停、平移) | 基本无(静态图表) |
学习曲线 | 中等 | 较陡峭 |
图表美观度 | 高(默认专业) | 需较多定制 |
3D图表 | 支持良好 | 支持有限 |
Web集成 | 原生支持 | 需额外转换 |
结语
Plotly是Python生态中功能强大且美观的数据可视化库,特别适合需要交互性的场景。通过本教程,您已经学会了:
- 安装和导入Plotly库
- 创建基础图表(折线图、柱状图、散点图、饼图)
- 创建高级图表(3D图、热力图)
- 自定义图表样式和布局
- 导出图表到不同格式
Plotly在数据科学、商业分析和Web应用中都有广泛用途。通过不断实践,您可以掌握更多高级功能,创建出专业级的数据可视化作品。
学习资源
- 📚 官方文档:https://plotly.com/python/
- 📊 图表示例库:https://plotly.com/python/gallery/
- 💻 GitHub仓库:https://github.com/plotly/plotly.py
本文由OuyangTaoTui于2025-07-19发表在吾爱品聚,如有疑问,请联系我们。
本文链接:http://pjw.521pj.cn/20255991.html
发表评论