Plotly:太阳爆发图未正确渲染

2024-06-15 01:37:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我将遵循official documentation中关于python3的plotly中的sunburst图的教程示例

基于此示例,我以与示例完全相似的方式构建了数据帧,并验证了数据的合理性

现在,问题来了。如果像下面的代码中所示添加branchvalues='total',则会得到一个空白的白色图表。也就是说,什么都不会被渲染

fig.add_trace(go.Sunburst(
    labels=df_all_trees['id'],
    parents=df_all_trees['parent'],
    values=df_all_trees['value'],
    branchvalues='total',
    marker=dict(
        colors=df_all_trees['color'],
        colorscale='RdBu'),
    hovertemplate='<b>%{label} </b> <br></br> Allocated: %{value}',
    name=''
))

如果我删除branchvalues='total',就像下面的代码一样

fig.add_trace(go.Sunburst(
    labels=df_all_trees['id'],
    parents=df_all_trees['parent'],
    values=df_all_trees['value'],
    marker=dict(
        colors=df_all_trees['color'],
        colorscale='RdBu'),
    hovertemplate='<b>%{label} </b> <br></br> Allocated: %{value}',
    name=''
))

我得到一张相当扭曲的图表

enter image description here

我做错了什么

编辑-添加数据和代码

数据

enter image description here

csv中的相同数据

,id,父项,值,颜色

0,税务规划,星光保利,1.54,1.54

1,税务规划,超级大道,8.46,8.46

2,税务规划,巴贾吉财政部,8.75,8.75

3,税务筹划,班汉银行,2.75,2.75

4,税务规划,Bharti Airtel,1.74,1.74

5,税务规划,康明斯印度,1.5,1.5

6,税务规划,Divi实验室,2.16,2.16

7,税务规划,耐力科技,0.86,0.86

8,税务规划,H D F C,4.9,4.9

9,税务规划,HDFC银行,6.35,6.35

10,税务规划,ICICI银行,2.32,2.32

11,税务规划,信息Edg(印度),5.08,5.08

12,税务规划,Kotak Mah。银行,8.454707583,8.454707583

13,税收筹划,金融资产管理局,0.74,0.74

14,税务规划,马鲁蒂铃木,4.71,4.71

15,税务规划,Motherson Sumi,1.19,1.19

16,税务规划,多部门执行,1.29,1.29

17,税收规划,雀巢印度,4.53,4.53

18,税务规划,净CA&;其他,1.1,1.1

19,税务规划,Pidilite Inds.,5.72,5.72

20,税收规划,什利水泥,1.17,1.17

21,税收筹划,圣达拉姆财政部,Hol,0.04,0.04

22,税收规划,Sundaram Finance,1.58,1.58

23,税务规划,交响乐,1.76,1.76

24,税务规划,TCS,6.17,6.17

25,税务规划,TTK医疗,0.07,0.07

26,税务规划,TTK Prestige,2.07,2.07

27,税务规划,塔塔全球,0.52,0.52

28,税务规划,科技马欣德拉,1.39,1.39

29,税务规划,Torrent Power,3.61,3.61

30,税务规划,V-Guard Inds.,0.55,0.55

31,税务规划,WABCO印度,1.74,1.74

32,Astral Poly,塑料制品,1.54,1.54

超级大道33号,贸易,8.46,8.46

34,Bajaj Fin.,财务与金融部;投资,8.75,8.75

35,班汉银行,银行-私营部门,2.75,2.75

36,Bharti Airtel,电信服务提供商,1.74,1.74

37,康明斯印度,发动机,1.5,1.5

38,迪维实验室,制药-印度-原料药,2.16,2.16

39,耐久性技术,汽车配件,0.86,0.86

40,H D F C,金融-住房,4.9,4.9

41,HDFC银行,银行-私营部门,6.35,6.35

42,ICICI银行,银行-私营部门,2.32,2.32

43,信息Edg(印度),杂项,5.08,5.08

44,科塔马。银行,银行-私营部门,8.454707583,8.454707583

45,新加坡金融管理局财务、财务和;投资,0.74,0.74

46,马鲁蒂铃木,汽车-乘用车,4.71,4.71

47,Motherson Sumi,汽车配件,1.19,1.19

48,多通信交换,杂项,1.29,1.29

49,雀巢印度,食品加工-跨国公司,4.53,4.53

50,净CA&;其他,净CA及;其他,1.1,1.1

51,Pidilite Inds.,化学品,5.72,5.72

52,Shree水泥,水泥-北印度,1.17,1.17

53,Sundaram Fin.Hol,财务及;投资,0.04,0.04

54,Sundaram Finance,Finance&;投资,1.58,1.58

55,交响乐,家用电器,1.76,1.76

56,TCS,计算机-软件-大型,6.17,6.17

57,TTK医疗、制药-印度-原料药和;Formln,0.07,0.07

58,TTK Prestige,家用电器,2.07,2.07

59,塔塔全球,茶叶,0.52,0.52

60,科技马欣德拉,计算机-软件-大型,1.39,1.39

61,激流电力、发电和供电,3.61,3.61

62,V型防护装置,电气设备,0.55,0.55

63,WABCO印度,汽车配件,1.74,1.74

64,汽车配件,权益,3.789999996,3.789999999996

65,汽车-乘用车,权益,4.71,4.71

66,银行-私营部门,股本,19.874707583,19.874707583

67,水泥-北印度,股本,1.17,1.17

68,化学品,权益,5.72,5.72

69,计算机-软件-大型,股票,7.56,7.56

70,家用电器,权益,3.83,3.83

71,电气设备,权益,0.55,0.55

72,引擎,股本,1.5,1.5

73,财经及;投资、权益、11.11、11.11

74,金融-住房,股权,4.9,4.9

75,食品加工-跨国公司,股本,4.53,4.53

76,杂项,权益,6.37,6.37

77,净CA&;其他,净CA及;其他,1.1,1.1

78,制药-印度-原料药,股本,2.16,2.16

79,制药-印度-原料药和;Formln,权益,0.07,0.07

80,塑料制品,权益,1.54,1.54

81,发电和供应,权益,3.61,3.61

82,Tea,股票,0.52,0.52

83,电信服务提供商,权益,1.74,1.74

84,交易,股票,8.46,8.46

85,权益,总计,93.71470758299998,93.71470758299998

86,净CA&;其他,总计,1.1,1.1

87,总计,94.814707583,94.814707583

上述数据/csv需要导入到称为alloc的数据框中

代码

import plotly.graph_objects as go
from plotly.subplots import make_subplots
import pandas as pd

df = alloc

average_score = df['PERC_HOLD'].sum()

fig = go.Figure()

fig.add_trace(go.Sunburst(
    labels=df_all_trees['id'],
    parents=df_all_trees['parent'],
    values=df_all_trees['value'],
    branchvalues='total',
    marker=dict(
        colors=df_all_trees['color'],
        colorscale='RdBu',
        cmid=average_score),
    hovertemplate='<b>%{label} </b> <br> Sales: %{value}<br> Success rate: %{color:.2f}',
    name=''
    ))

fig.update_layout(margin=dict(t=10, b=10, r=10, l=10))
fig.write_html("fig2.html")

Tags: 数据brgodfvaluefig银行all
1条回答
网友
1楼 · 发布于 2024-06-15 01:37:03

在这种特殊情况下,如果没有合适的数据样本,几乎不可能提供完整的解决方案。不过,我要测试的第一件事是设置

branchvalues="remainder"

相关问题 更多 >