plotly绘制动态柱状图并控制展示速度
时间: 2023-10-18 11:11:10 浏览: 277
要绘制动态柱状图,可以使用Plotly的动画功能。以下是一个简单的例子,展示如何在Python中使用Plotly创建动态柱状图并控制展示速度:
```python
import plotly.graph_objs as go
from plotly.subplots import make_subplots
import pandas as pd
import numpy as np
# 创建数据
df = pd.DataFrame({'x': ['A', 'B', 'C', 'D'], 'y': np.random.randint(1, 10, 4)})
frames = [go.Frame(data=[go.Bar(x=df['x'], y=df['y'])]) for i in range(10)]
# 创建动画布局和图表
fig = make_subplots(rows=1, cols=1)
fig.add_trace(go.Bar(x=df['x'], y=df['y']), 1, 1)
fig.update_layout(
updatemenus=[{
'type': 'buttons',
'buttons': [{
'label': 'Play',
'method': 'animate',
'args': [None, {'frame': {'duration': 500, 'redraw': False}, 'fromcurrent': True}]
}, {
'label': 'Pause',
'method': 'animate',
'args': [[None], {'frame': {'duration': 0, 'redraw': False}, 'mode': 'immediate',
'transition': {'duration': 0}}]
}]
}],
xaxis=dict(range=[0, len(df['x'])], autorange=False),
yaxis=dict(range=[0, max(df['y'])], autorange=False)
)
fig.frames = frames
fig.show()
```
在此示例中,我们使用Pandas和Numpy生成了一个简单的随机数据框,并创建了10个帧,每个帧都包含一个柱状图。我们通过指定动画布局和图表元素,使用updatemenus选项卡添加了“播放”和“暂停”按钮。我们还通过指定每个框架的绘图数据来创建帧。
最后,我们将所有帧添加到图形中,并使用show()方法将图形呈现在浏览器中。您可以通过更改“帧”选项卡中的“持续时间”参数来控制动画的速度。
阅读全文