python - Plotly:在 sunburst 中添加与父类成比例的平行特征
问题描述
在一个 plotly sunburst 图表中,我想将多个子类添加到父类。我已尝试将值分配给此处names, parents, values
所示。但它返回一个空白数字。我尝试创建一个变量(在下面的代码中),但我不确定如何将多个直接子级命名为单个父类。这就是我想要的-path
这是重现的代码-
import pandas as pd
import plotly.express as px
df = pd.DataFrame({'continent':['SA','SA','NA','NA'],
'country':['Brazil','Uruguay','USA','Canada'],
'total_vaccinations':[100,80,400,200],
'people_vaccinated':[40,20,100,80],
'people_fully_vaccinated':[8,4,11,11]})
px.sunburst(df, path=['continent','country'],values='total_vaccinations')
我想people_vaccinated
和people_fully_vaccinated
功能作为孩子到各自的国家描绘total_vaccinations
。我希望它们的大小与它们的价值成比例。帮助将不胜感激!
解决方案
如您所见,有两种方法可以使用px.sunburst()
. 使用path
变量或使用names
,parents
和values
变量。
带有变量的第一个变体path
适用于矩形数据,因此不适合您,因为您有缺失值。尽管存在缺失值的矩形数据的可能性,但它要求缺失值的父项没有其他条目(plotly ref)。
因此,您必须使用第二个变体。由于您有一些名称相同的叶子,因此您需要除names
,parents
之外values
还需要定义一个ids
具有唯一字符串的列表。
import pandas as pd
import plotly.express as px
data = {
'ids':['SA', 'NA', 'Brazil', 'Uruguay', 'USA', 'Canada', 'PFV Brazil', 'PV Brazil', 'PFV Uruguay', 'PV Uruguay', 'PFV USA', 'PV USA', 'PFV Canada', 'PV Canada'],
'labels': ['SA', 'NA', 'Brazil', 'Uruguay', 'USA', 'Canada', 'PFV', 'PV', 'PFV', 'PV', 'PFV', 'PV', 'PFV', 'PV'],
'parent': ['', '', 'SA', 'SA', 'NA', 'NA', 'Brazil', 'Brazil', 'Uruguay', 'Uruguay', 'USA', 'USA', 'Canada', 'Canada'],
'value': [0, 0, 100, 80, 400, 200, 8, 40, 4, 20, 11, 100, 11, 80]
}
fig =px.sunburst(data, names='labels', parents='parent', values='value', ids='ids')
fig.show()
推荐阅读
- typescript - 在 switch case 中重新声明变量
- python - 如何在不使用小数、分数或任何其他外部库的情况下修复浮点数中的 Python 舍入错误?
- rollup - 文件名中没有哈希的 vite
- django - Django - django 中的应用程序是否称为微服务?
- javascript - Discord.js 获取用户 DM 和日志消息
- bluetooth-lowenergy - STM BlueNRG 最大服务
- centos8 - Imapsync 安装失败
- python - 以输出可以是平滑曲线的方式绘制概率密度函数
- python - 如何在 Python 中的两个函数之间传递一个变量/字典
- mongodb - MongoDB 无法连接到 admin db 中新创建的 admin 用户