使用python plotly制作动画线条图

使用python plotly制作动画线条图,python,plotly-dash,Python,Plotly Dash,我有黄金价格数据集,其中第一列是yyyy-mm-dd格式的日期,第二列是黄金价格 2019-12-03 1477.60 2019-12-04 1474.45 2019-12-05 1448.40 是否有任何方法可以使用python plotly制作动画线条图,从而显示黄金价格随日期的变化?是的,我向您展示了一个示例 效果很好,但是你没有得到太多,因为这是一个二维数据,我可以说你确实无缘无故地延迟了数据显示 通常,动画很适合显示3维,并

我有黄金价格数据集,其中第一列是yyyy-mm-dd格式的日期,第二列是黄金价格

       2019-12-03    1477.60
       2019-12-04    1474.45
       2019-12-05    1448.40

是否有任何方法可以使用python plotly制作动画线条图,从而显示黄金价格随日期的变化?

是的,我向您展示了一个示例

效果很好,但是你没有得到太多,因为这是一个二维数据,我可以说你确实无缘无故地延迟了数据显示

通常,动画很适合显示3维,并且显然可以使用时间作为额外维度来执行动画,如plotly web动画文档中的第一个示例:

导入plotly.graph\u对象
作为pd进口熊猫
#也许你需要在jupyter笔记本上显示绘图
将plotly.offline作为pyo导入
pyo.init_notebook_mode()
#加载示例数据
日期=[“2019-12-03”、“2019-12-04”、“2019-12-05”、“2019-12-06”,
"2019-12-07", "2019-12-08", "2019-12-09"]
黄金价值=[1477.601474.451448.401447.401444.401449.401441.40]
比特币价值=[1577.601564.451568.401537.401584.401529.401571.40]
df=pd.DataFrame(列表(zip(日期、黄金价值、比特币价值)),
列=['date'、'value\u gold'、'value\u bitcoin'])
#底图
图(
布局=go.layout(
updatemenus=[dict(type=“buttons”,direction=“right”,x=0.9,y=1.16),],
xaxis=dict(范围=[“2019-12-02”,“2019-12-10”],
autorange=False,tickwidth=2,
title_text=“Time”),
yaxis=dict(范围=[1400,1600],
自动范围=假,
title_text=“价格”),
title=“黄金-比特币价格演变”,
))
#添加痕迹
init=1
图1添加_轨迹(
go.Scatter(x=df.date[:init],
y=df.value\u gold[:init],
name=“Gold”,
可见=真,
line=dict(color=“#33CFA5”,dash=“dash”))
图1添加_轨迹(
go.Scatter(x=df.date[:init],
y=df.value_比特币[:init],
name=“比特币”,
可见=真,
line=dict(color=“#bf00ff”,dash=“dash”))
#动画
图1更新(帧)=[
开始,帧(
资料=[
去散点(x=df.date[:k],y=df.value\u gold[:k]),
go.Scatter(x=df.date[:k],y=df.value_比特币[:k])]
)
对于范围内的k(初始,len(df)+1)])
#额外格式
图更新X(ticks=“外部”,tickwidth=2,tickcolor=“白色”,ticklen=10)
图:更新(ticks=“外部”,tickwidth=2,tickcolor=“白色”,ticklen=1)
图更新布局(yaxis_格式=',')
图更新布局(图例=dict(x=0,y=1.1),图例方向=“h”)
#钮扣
图1.2.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1(
更新=[
口述(
按钮=列表([
dict(label=“Play”,
method=“animate”,
args=[None,{“frame”:{“duration”:1000}]),
dict(label=“Gold”,
方法=“更新”,
args=[{“可见”:[False,True]},
{“showlegend”:True}),
dict(label=“比特币”,
方法=“更新”,
args=[{“可见”:[True,False]},
{“showlegend”:True}),
dict(label=“All”,
方法=“更新”,
args=[{“可见”:[True,True,True]},
{“showlegend”:True}),
]))])
图2(图3)

我还提供了石油和比特币的价格,并制作了dcc.radiotems,用户可以选择要设置动画的项目,但不能连接动画和选择。你知道什么方法吗?嗨,我已经编辑了anwser,添加了时间序列和按钮来过滤它们。