python plotly (px) 动画帧日期顺序错误

python plotly (px) animation frame date is in wrong order

借助 plotly express,我构建了一个与他们 website.

上显示的类似的条形图

由于 px.bar 不允许我 运行 datetime64 上的动画帧 [ns] 我将 datetime 转换为如下字符串。

eu_vaccine_df['date_str'] = eu_vaccine_df['date'].apply(lambda x: str(x))
eu_vaccine_df[['date_str', 'date', 'country', 'people_vaccinated_per_hundred']].head()

然后我 运行 px.bar 的数据集如下所示,包含 30 个不同的国家/地区。

包含动画的条形图代码如下所示。

fig = px.bar(
  eu_vaccine_df,
  x='country', y='people_vaccinated_per_hundred',
  color='country',
  animation_frame='date_str',
  animation_group='country',
  hover_name='country',
  range_y=[0,50],
  range_x=[0,30]
)
fig.update_layout(
  template='plotly_dark',
  margin=dict(r=10, t=25, b=40, l=60)
)
fig.show()

最后动画帧上的日期是错误的。它首先显示 2021 年的所有结果,然后显示 2020 年的所有结果,如以下屏幕截图底部所示。

按日期排序我的 df 解决了这个问题。

  covid_df['date'] = pd.to_datetime(covid_df['date'])
  covid_df = covid_df.sort_values('date', ascending=True)
  covid_df['date'] = covid_df['date'].dt.strftime('%m-%d-%Y')