Plotly画动态柱状图并控制展示速度
时间: 2023-08-15 08:16:00 浏览: 133
要画动态柱状图并控制展示速度,可以使用Plotly的动态图功能和柱状图组件。以下是一个简单的例子:
```python
import plotly.graph_objects as go
import numpy as np
# 创建数据
x = np.arange(20)
y = np.random.randint(1, 10, 20)
# 创建初始图形
fig = go.Figure()
# 添加初始数据
fig.add_trace(go.Bar(
x=x,
y=y,
name='Frame 0'
))
# 设置布局
fig.update_layout(
title='Dynamic Bar Chart',
xaxis=dict(range=[-1, 21], autorange=False),
yaxis=dict(range=[0, max(y)+2], autorange=False),
updatemenus=[dict(
type='buttons',
showactive=False,
buttons=[dict(
label='Play',
method='animate',
args=[None, dict(frame=dict(duration=500, redraw=True), fromcurrent=True)]
)]
)]
)
# 定义动画
frames = [go.Frame(data=[go.Bar(
x=x,
y=np.random.randint(1, 10, 20),
name='Frame {}'.format(i+1)
)]) for i in range(9)]
# 添加动画
fig.frames = frames
# 设置动画参数
fig.update_layout(
updatemenus=[dict(
type='buttons',
showactive=False,
buttons=[dict(
label='Play',
method='animate',
args=[None, dict(frame=dict(duration=500, redraw=True), fromcurrent=True)]
),
dict(
label='Pause',
method='animate',
args=[[None], dict(frame=dict(duration=0, redraw=False), mode='immediate')]
)]
)]
)
# 显示图形
fig.show()
```
这个例子生成了一个含有20个数据点的柱状图,每个数据点的值是随机生成的。动态效果是数据点按时间顺序依次出现的动画。你可以根据需要修改数据和动画参数。其中,动画参数`duration`控制每帧之间的时间间隔,单位是毫秒,你可以根据需要调整这个参数的值来控制动画的展示速度。
阅读全文