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')
借助 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')