繁体   English   中英

Plotly:旭日图未正确渲染

[英]Plotly: Sunburst diagram is not rendering properly

我正在关注官方文档中python3上plotly中旭日图的教程示例。

基于此示例,我以与示例完全相同的方式构建了我的 DataFrame,并验证了数据的完整性。

现在,问题来了。 如果我像下面的代码所示添加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=''
))

我得到一个相当扭曲的图表。

在此处输入图像描述

我究竟做错了什么?

编辑 - 添加数据和代码

数据

在此处输入图像描述

csv 中的相同数据

,id,父级,值,颜色

0,税务筹划,Astral Poly,1.54,1.54

1、税务筹划、超级大道、8.46、8.46

2,税务筹划,Bajaj Fin.,8.75,8.75

3,税务筹划,Bandhan Bank,2.75,2.75

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

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

6,税务筹划,Divi's Lab.,2.16,2.16

7、税务筹划、耐力科技、0.86、0.86

8,税务筹划,HDF C,4.9,4.9

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

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

11,税务筹划,Info Edg.(印度),5.08,5.08

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

13,税务筹划,MAS FINANC SER,0.74,0.74

14,税务筹划,Maruti Suzuki,4.71,4.71

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

16,税务筹划,多通讯。 Exc.,1.29,1.29

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

18,税务筹划,净 CA 及其他,1.1,1.1

19、税务筹划、Pidilite Inds.、5.72、5.72

20,税务筹划,Shree Cement,1.17,1.17

21,税务筹划,Sundaram Fin.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、税务规划、Tech Mahindra、1.39、1.39

29,税务筹划,洪流,3.61,3.61

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

31,税务筹划,威伯科印度,1.74,1.74

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

33,Avenue Super.,贸易,8.46,8.46

34,Bajaj Fin.,金融与投资,8.75,8.75

35,Bandhan Bank,银行 - 私营部门,2.75,2.75

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

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

38,Divi's Lab.,Pharmaceuticals - Indian - Bulk Drugs,2.16,2.16

39,耐力科技,汽车配件,0.86,0.86

40,HDF C,金融-住房,4.9,4.9

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

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

43,Info Edg.(印度),Miscellaneous,5.08,5.08

44、柯达马。 银行,银行 - 私营部门,8.454707583,8.454707583

45,MAS FINANC SER,金融与投资,0.74,0.74

46,Maruti Suzuki,汽车-乘用车,4.71,4.71

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

48,多通讯。 Exc.,杂项,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 & Investments,1.58,1.58

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

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

57,TTK Healthcare,Pharmaceuticals - Indian - Bulk Drugs & Formln,0.07,0.07

58,TTK威望,家用电器,2.07,2.07

59,塔塔环球,茶,0.52,0.52

60,Tech Mahindra,计算机 - 软件 - 大型,1.39,1.39

61,Torrent Power,发电与供电,3.61,3.61

62,V-Guard Inds.,电气设备,0.55,0.55

63,威伯科印度,汽车配件,1.74,1.74

64、汽车配套、股权、3.7899999999999996、3.7899999999999996

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,Pharmaceuticals - Indian - Bulk Drugs,Equity,2.16,2.16

79,Pharmaceuticals - Indian - Bulk Drugs & Formln,Equity,0.07,0.07

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

81、发电与供电、股权、3.61、3.61

82,茶,股权,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 需要导入一个 dataframe 知道为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")

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

branchvalues="remainder"

暂无
暂无

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

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