首页 > 解决方案 > 如何使用宽数据框格式制作一个快速表达的面积图动画?

问题描述

我正在浏览plotly.express图表和动画,但遇到了一个我不知道如何处理的问题。如果有人可以提供帮助,我将不胜感激。所以这是我的数据框的外观(它实际上有额外的索引,但这并不重要,因为它没有被使用):

YearWeekISO ALL      Age18_24 Age25_49
2020-W52    0        0        0
2020-W53    10       0        6
2021-W01    50       0        26
2021-W02    1400     190      720
2021-W03    96722    2158     44434
2021-W04    406326   15738    186148
2021-W05    913702   56894    420448
2021-W06    1312204  75910    559022
2021-W07    1883038  92950    652650
2021-W08    2390826  104078   699688
2021-W09    2873676  110784   732604
2021-W10    3215104  114296   752118
2021-W11    3565462  116494   767442
2021-W12    3974814  118154   781284
2021-W13    4130168  119008   787832
2021-W14    4159884  119270   789706

到目前为止,我有一个静态图,如下所示:

面积图

生成上图的代码:

fig = px.area(
    df, 
    x='YearWeekISO', 
    y=['ALL', 'Age18_24', 'Age25_49'],
    # animation_frame='YearWeekISO',
)
fig.show()

如您所见,animation_frame参数已注释。x我希望动画发生的是它应该根据值 ( )从左到右移动YearWeekISO,就像在折线图竞赛中一样。我怎样才能做到这一点?我还想补充一点,我在使用df.melt(). 代码将如下所示:

fig = px.area(
    df, 
    x=df.index, 
    y='value',
    color='TargetGroup',
    # animation_frame=df.index,
)
fig.show()

该代码将产生相同的确切结果并具有相同的确切缺陷。那么我该怎么做呢?我是选择了错误animation_frame的值还是需要更改我的数据框才能使其正常工作?我也尝试更改日期格式,但它似乎也不起作用,或者我做错了什么。顺便说一句,在这种情况下,animation_frame似乎不接受实际日期时间格式的日期,只接受字符串或整数。对于我遵循这些教程的代码: https://plotly.com/python/animations/
https://plotly.com/python/wide-form/

标签: pythonpandasdataframeanimationplotly-python

解决方案


推荐阅读