说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
Plotly 是一个用于创建交互式图表的开源 Python 库。它支持多种类型的图表,包括折线图、散点图、柱状图、饼图、地图、3D 图表等。Plotly 非常适合用于数据分析和数据可视化,因为它不仅可以生成静态图表,还可以生成动态交互式图表,用户可以在网页中进行缩放、平移和其他交互操作。
在使用 Plotly 之前,需要先安装它。可以使用以下命令通过 pip 安装:
pip install plotly
使用 Plotly 创建一个简单的折线图:
import plotly.graph_objects as go
# 创建数据
x = [1, 2, 3, 4, 5]
y = [10, 15, 13, 17, 19]
# 创建图表对象
fig = go.Figure(data=go.Scatter(x=x, y=y, mode='lines+markers'))
# 显示图表
fig.show()
Plotly Express 是 Plotly 的高级接口,简化了许多常见图表的创建过程。下面是使用 Plotly Express 创建一个散点图的例子:
import plotly.express as px
# 创建数据
df = px.data.iris()
# 创建散点图
fig = px.scatter(df,
x='sepal_width',
y='sepal_length',
color='species'
)
# 显示图表
fig.show()
可以通过设置各种参数来自定义图表的外观和行为。以下是一些常见的自定义选项:
fig = go.Figure()
# 添加多条线
fig.add_trace(go.Scatter(x=[1, 2, 3, 4],
y=[10, 11, 12, 13],
mode='lines',
name='线 1')
)
fig.add_trace(go.Scatter(x=[1, 2, 3, 4],
y=[14, 15, 16, 17],
mode='lines+markers',
name='线 2')
)
# 设置标题和轴标签
fig.update_layout(title='自定义图表标题',
xaxis_title='X 轴标签',
yaxis_title='Y 轴标签'
)
# 显示图表
fig.show()
Plotly 支持在同一个图表中创建多个子图(subplots)。
from plotly.subplots import make_subplots
# 创建包含两个子图的图表
fig = make_subplots(rows=1, cols=2)
# 添加数据到第一个子图
fig.add_trace(go.Scatter(x=[1, 2, 3],
y=[4, 5, 6]),
row=1,
col=1)
# 添加数据到第二个子图
fig.add_trace(go.Scatter(x=[20, 30, 40],
y=[50, 60, 70]),
row=1,
col=2)
# 显示图表
fig.show()
Plotly 也支持创建 3D 图表,如 3D 散点图和 3D 曲面图。
# 创建 3D 散点图
fig = go.Figure(data=[go.Scatter3d(x=[1, 2, 3],
y=[4, 5, 6],
z=[7, 8, 9],
mode='markers')
]
)
# 显示图表
fig.show()
Plotly 支持动画效果,可以用来展示数据的动态变化。
import plotly.express as px
# 使用内置的 gapminder 数据集
df = px.data.gapminder()
# 创建动画图表
fig = px.scatter(df, x='gdpPercap',
y='lifeExp',
animation_frame='year',
animation_group='country',
size='pop',
color='continent',
hover_name='country',
log_x=True,
size_max=55,
range_x=[100,100000],
range_y=[25,90]
)
# 显示图表
fig.show()
可以将图表保存为 HTML 文件或图片格式。
# pip install -U kaleido 先安装三方库
# 保存为 HTML 文件
fig.write_html("figure.html")
# 保存为图片
fig.write_image("figure.png")
Plotly 还可以与 Dash 集成,Dash 是一个用于构建数据驱动的 Web 应用程序的 Python 框架。
import dash
import dash_core_components as dcc
import dash_html_components as html
# 初始化 Dash 应用
app = dash.Dash(__name__)
app.layout = html.Div(children=[
html.H1(children='Hello Dash'),
dcc.Graph(
id='example-graph',
figure=fig
)
])
if __name__ == '__main__':
app.run_server(debug=True)
Plotly 是一个功能强大且易于使用的库,非常适合用于数据可视化和创建交互式图表。无论是简单的图表还是复杂的可视化需求,Plotly 都能很好地满足。
更新时间:2024-07-07 08:52:17 标签:python plotly 数据 可视化