Plotly 是一个强大的可视化库,它支持 Python、R 和 JavaScript,能够在网页上创建交互式的图表。Plotly 的 Python 接口特别适合于数据科学和机器学习领域,因为它可以快速地将数据转化为丰富的图表,并且支持丰富的图表类型,如线图、散点图、柱状图、箱线图、热力图、3D 图表等。
Plotly 的主要特点包括:
- 交互性:Plotly 的图表是交互式的,用户可以通过悬停、点击和缩放来探索数据。
- 多种图表类型:Plotly 提供了多种图表类型,包括基本的图表和复杂的图表,如地图和3D图形。
- 易于使用:Plotly 有一个高级接口 Plotly Express,它简化了常见图表的创建过程。
- 集成:Plotly 可以与 Jupyter Notebook、Dash 和其他 Python 数据分析库(如 Pandas)集成。
- 部署:通过 Dash,你可以将 Plotly 图表部署为交互式 Web 应用程序。
Plotly 安装
要开始使用 Plotly,你可以通过 pip 安装它:
pip install plotly
如果你打算在 Jupyter Notebook 中使用 Plotly,可以启用 notebook 集成:
import plotly.express as px
px.init_notebook_mode()
创建图表
以下是一些使用 Plotly 创建图表的基本示例:
散点图:
import plotly.express as px
import pandas as pd
# 创建示例数据
data = pd.DataFrame({
'x': [1, 2, 3, 4, 5],
'y': [5, 4, 3, 2, 1]
})
# 使用 Plotly Express 绘制散点图
fig = px.scatter(data, x='x', y='y', title='Scatter plot')
fig.show()
柱状图:
import plotly.express as px
data = {
'fruit': ['apple', 'banana', 'orange', 'kiwi'],
'count': [3, 2, 4, 1]
}
fig = px.bar(data, x='fruit', y='count')
fig.show()
3D 散点图:
from plotly.subplots import make_subplots
import plotly.graph_objects as go
fig = make_subplots(rows=1, cols=1, specs=[[{
"type": "scatter3d"}]])
fig.add_trace(go.Scatter3d(
x=[1, 2, 3, 4],
y=[4, 5, 6, 7],
z=[10, 15, 13, 17],
mode='markers',
marker=dict(
size=12,
color='blue',
opacity=0.9
)
), row=1, col=1)
fig.show()
定制和布局
Plotly 允许你定制图表的每个方面,包括标题、轴标签、图例和颜色。你可以使用 update_layout
方法来调整图表的布局:
import plotly.graph_objects as go
fig = go.Figure(data=go.Bar(x=[1, 2, 3], y=[5, 7, 3]))
fig.update_layout(
title='Bar Chart',
xaxis_title='X Axis',
yaxis_title='Y Axis'
)
fig.show()
保存和导出
你可以将 Plotly 图表保存为 HTML 文件或导出为图片格式:
fig.write_html('figure.html') # 保存为 HTML 文件
fig.write_image('figure.png') # 保存为图片
学习资源
- Plotly 官方文档:Plotly Python API reference
- Plotly 教程:Python plotly 数据可视化
通过这些资源,你可以学习更多关于 Plotly 的高级特性和技巧。