动画 plotly.express.area

Animating plotly.express.area

我想了解如何使用 plotly 为区域图制作动画。但是,我就是不明白。我试图创建一个非常简单的示例,我认为它应该可以工作,但它没有:

import plotly.express as px 
import pandas

dfa = pandas.DataFrame({
    'Decile': ['0.2', '0.1', '0.8', '0.1', '0.4', '0.9'],
    'Year': [1980, 1980, 1980, 1981, 1981, 1981]
})
px.area(dfa, title='Test', animation_frame='Year')

当我 运行 它时,我得到以下输出:

当我将滑块移动到 1981 时,绘图变空了:

我做错了什么?我希望该区域绘制 1980 年的 [0.2, 0.1, 0.8] 和 1981 年的 [0.1, 0.4, 0.9]。

我可以看到两个问题

  1. Decile 它真的是一个字符串并且应该被视为一个分类吗?已转换为数字
  2. 鉴于动画帧之间的取值范围不一致,需要显式设置

完整代码

import plotly.express as px
import pandas

dfa = pandas.DataFrame(
    {
        "Decile": ["0.2", "0.1", "0.8", "0.1", "0.4", "0.9"],
        "Year": [1980, 1980, 1980, 1981, 1981, 1981],
    }
)
dfa["Decile"] = pd.to_numeric(dfa["Decile"])
fig = px.area(dfa, title="Test", animation_frame="Year")

fig.update_layout(
    xaxis_range=dfa.index.values[[0, -1]],
    yaxis_range=[dfa["Decile"].min(), dfa["Decile"].max()],
)
fig