猿问

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

我想更改动画图表的“默认”框架,并强制它在渲染 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


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


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


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


qq_笑_17
浏览 145回答 2
2回答

阿晨1998

非常感谢兄弟的回答;有用。我构建了一个与您的解决方案类似但有一些差异的解决方案:import plotly.express as pximport plotly.graph_objects as godf = 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) -1fig.layout['sliders'][0]['active'] = last_frame_numfig = go.Figure(data=fig['frames'][-1]['data'], frames=fig['frames'], layout=fig.layout)fig不管怎样,我非常感谢您的关注/支持,在实施某些事情时有更多的选择真是太好了!非常感谢; 最好的问候,莱昂纳多

函数式编程

问题是fig.data你有第一帧。我找到了生成新图形的解决方法。import plotly.express as pximport plotly.graph_objects as godf = 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 figurefig2 = go.Figure()# add last frame traces to fig2for tr in fig.frames[-1].data:    fig2.add_trace(tr)# copy the layoutfig2.layout = fig.layout#  copy the framesfig2.frames = fig.frames# set last frame as the active onefig2.layout['sliders'][0]['active'] = len(fig.frames) - 1fig2
随时随地看视频慕课网APP

相关分类

Python
我要回答