如何解决动画气泡图不会每年更改值
我不熟悉使用Plotly进行可视化,并试图创建动画气泡图。我有一个数据框,其中包含2015年至2019年世界上所有国家的幸福分数,人均GDP,社会支持。我遵循了有关如何制作简单的动画气泡图的指南。这是我的代码:
fig = px.scatter(df_total_all_years,x="GDP per capita",y="Score",animation_frame='Year',animation_group='Country',size="Social support",color='Country',height=800,hover_name='Country',log_x=True,size_max=60)
fig.layout.updatemenus[0].buttons[0].args[1]['frame']['duration'] = 700
fig.update_layout(title="Happiness Score")
fig.show()
它确实显示了一个气泡图,并且我可以滑动年份,但是当我滑动多年时,值(气泡图)不会改变。当我将鼠标悬停在气泡上时,它仍然向我显示2015年的价值,例如,我滑到了2019年。
有人可以告诉我我在代码中做错了什么吗?
非常感谢您!
解决方法
我没有针对您的问题的数据,因此我从此处创建了数据。在工作表名称中的[Chapter2OnlineData_Expanded-wit]已处理的右侧菜单中,[Chapter2在线数据通过信任和管理扩展了(https://s3.amazonaws.com/happiness-report/2015/Chapter2OnlineData_Expanded-with-Trust-and-Governance.xlsx)。 下次将数据与数据一起发布时,您会更快地得到答案。
df_total.columns = ['country','Year','Score','GDP per capita','Social support','Healthy life','Continent']
df_total.fillna(0,inplace=True)
df_total.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 1106 entries,0 to 1105
Data columns (total 7 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 country 1106 non-null object
1 Year 1106 non-null int64
2 Score 1106 non-null float64
3 GDP per capita 1106 non-null float64
4 Social support 1106 non-null float64
5 Healthy life 1106 non-null float64
6 Continent 1106 non-null object
dtypes: float64(4),int64(1),object(2)
memory usage: 69.1+ KB
df_total.head()
country Year Score GDP per capita Social support Healthy life Continent
0 Afghanistan 2008 3.723590 7.178332 0.450662 47.862461 South Asia
1 Afghanistan 2009 4.401778 7.344422 0.552308 48.275078 South Asia
2 Afghanistan 2010 4.758381 7.400804 0.539075 48.673412 South Asia
3 Afghanistan 2011 3.831719 7.435526 0.521104 49.053383 South Asia
4 Afghanistan 2012 3.782938 7.545960 0.520637 49.415783 South Asia
import plotly.express as px
fig = px.scatter(df_total,x="GDP per capita",y="Score",animation_frame='Year',animation_group='country',size="Social support",color='Continent',height=800,hover_name='country',log_x=True,size_max=60)
fig.layout.updatemenus[0].buttons[0].args[1]['frame']['duration'] = 700
fig.update_layout(title="Happiness Score")
fig.show()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。