繁体   English   中英

Plotly:在旭日形中添加平行特征,尺寸与父 class 成比例

[英]Plotly: Add parallel features in sunburst with sizes proportionate to parent class

在 plotly 旭日形图中,我想将多个子类添加到父 class。 我尝试将值分配给names, parents, values ,如此处所示 但它返回一个空白数字。 我尝试创建一个path变量(在下面的代码中),但我不确定如何将多个直接子级命名为单个父级 class。 这就是我想要的-

在此处输入图像描述

这是重现的代码-

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_vaccinatedpeople_fully_vaccinated特征作为描述total_vaccinations的各个国家的孩子。 我希望它们的大小与它们的价值成比例。 帮助将不胜感激!

如您所见,有两种方法可以使用px.sunburst()创建旭日形图。 使用path变量或使用namesparentsvalues变量。

带有path变量的第一个变体适用于矩形数据,因此不适合您,因为您有缺失值。 尽管存在缺失值的矩形数据的可能性,但它要求缺失值的父项没有其他条目(plotly ref)

因此,您必须使用第二个变体 go。 由于您有一些名称相同的叶子,因此除了namesparentsvalues之外,您还需要定义一个具有唯一字符串的列表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()

结果将如下所示: 旭日形图

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM