繁体   English   中英

如何强制 Plotly 动画从最后一帧开始?

[英]How can I force Plotly animation to start by the last frame?

我想更改我的动画图表的“默认”框架,并强制它在呈现 Dash 应用程序时使用最后一个日期作为默认值。 我怎样才能做到这一点?

import plotly.express as px

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.layout['sliders'][0]['active'] = 11

and

frame = -1
fig = go.Figure(fig.frames[frame].data, fig.frames[frame].layout)
fig

但它没有在图表上正确反映。

有人可以指导我如何找到有关它的参考资料吗?

我想强制图表从去年开始。

问题是在fig.data你有第一帧。 我找到了一种生成新图形的解决方法。

import plotly.express as px
import plotly.graph_objects as go

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])

# New figure
fig2 = go.Figure()

# add last frame traces to fig2
for tr in fig.frames[-1].data:
    fig2.add_trace(tr)

# copy the layout
fig2.layout = fig.layout

#  copy the frames
fig2.frames = fig.frames

# set last frame as the active one
fig2.layout['sliders'][0]['active'] = len(fig.frames) - 1

fig2

非常感谢兄弟的回答; 有用。

我已经构建了一个与您的解决方案类似但有一些差异的解决方案:

import plotly.express as px
import plotly.graph_objects as go

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])

last_frame_num = len(fig.frames) -1

fig.layout['sliders'][0]['active'] = last_frame_num

fig = go.Figure(data=fig['frames'][-1]['data'], frames=fig['frames'], layout=fig.layout)

fig

无论如何,我非常感谢您的关注/支持,在实施某事时有更多选择真是太好了!

非常感谢; 最好的问候,莱昂纳多

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM