python - Plotly 动画气泡图不会每年更改值
问题描述
我是使用 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 年时。
有人可以告诉我我在代码中做错了什么吗?
太感谢了!
解决方案
我没有你的问题的数据,所以我从这里创建了数据。在右侧菜单 [Chapter 2 Online Data Expanded with Trust and Governance] ( https://s3.amazonaws.com/happiness-report/2015/Chapter2OnlineData_Expanded-with-Trust-and-Governance.xlsx ) 来自工作表名称: [Chapter2OnlineData_Expanded-wit] 已处理。下次您将数据与数据一起发布时,您会更快地得到答案。
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()
推荐阅读
- python - 如何为 mongoengine 文档实现 Flask-RBAC?
- sql - SQL Session ID 由两列生成
- mongodb - 使用 mongo shell 连接到 mongodb 时遇到问题
- javascript - ColorThief.getColor 不是函数
- amazon-web-services - 在 AWS 上存储 Docker 容器的配置文件的最佳方式是什么?
- java - spring boot spring data jpa多个数据源执行相同的服务
- maven - Maven 使用未设置的版本变量下载失败
- spring - OracleLobCreator 需要在 [oracle.jdbc.OracleConnection] 上工作,而不是在 [class oracle.jdbc.drive r.T4CConnection] 上工作
- amazon-web-services - AWS 负载均衡器背后的 SSL 证书
- javascript - 侦听多个相互依赖的引用时,仅在 Vue 组合 API 中更新计算值一次