我正在按照official documentation在python3上以图例方式遵循森伯斯特图的教程示例。
基于此示例,我以与示例完全相似的方式构建了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,税收筹划,星空保利,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,税收筹划,迪维实验室,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,税收筹划,信息教育(印度),5.08,5.08
12,税收计划,柯达玛哈。银行,8.454707583,8.454707583
13,税收筹划,MAS FINANC SER,0.74,0.74
14,税收筹划,丸木铃木,4.71,4.71
15,税收筹划,苏森母亲,1.19,1.19
16,税收筹划,多方沟通。例1.29,1.29
17,税收计划,印度的雀巢,4.53,4.53
18,税收筹划,Net CA和其他人,1.1、1.1
19,Pidilite Ind。,Tax Planning,5.72,5.72
20,税收筹划,水泥,1.17、1.17
21,税收筹划,圣达拉姆港,0.04,0.04
22,税收筹划,圣达兰金融,1.58,1.58
23,税收筹划,交响曲,1.76,1.76
24,税收筹划,TCS,6.17,6.17
25,税收筹划,TTK Healthcare,0.07,0.07
26,税收筹划,TTK信誉,2.07、2.07
27,税收筹划,塔塔全球,0.52,0.52
28,税收筹划,马辛德拉科技公司,1.39,1.39
29,税收筹划,Torrent Power,3.61、3.61
30,税收筹划,V-Guard工业,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,Cummins India,Engines,1.5,1.5
38,Divi's Lab。,Pharmaceuticals-Indian-Bulk Drugs,2.16,2.16
39,Endurance Tech。,Auto Ancillaries,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,Info Edg。(India),Miscellaneous,5.08,5.08
44,柯达玛哈。银行,银行-私营部门,8.454707583,8.454707583
45,MAS FINANC SER,Finance&Investments,0.74,0.74
46,丸木铃木,汽车-乘用车,4.71,4.71
47,Motherson Sumi,Auto Ancillaries,1.19,1.19
48,Multi Comm。例如,其他,1.29,1.29
49,雀巢印度,食品-加工-跨国公司,4.53,4.53
50,Net CA及其他,Net CA及其他,1.1,1.1
51,Pidilite Inds。,Chemicals,5.72,5.72
52,Shree Cement,水泥-北印度,1.17,1.17
53,Sundaram Fin.Hol,Finance&Investments,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 Prestige,家用电器,2.07,2.07
59,Tata Global,Tea,0.52,0.52
60,Tech Mahindra,计算机-软件-大型,1.39、1.39
61,洪流功率,发电与供电,3.61,3.61
62,V-Guard工业,电气设备,0.55,0.55
63,WABCO印度,汽车辅助设备,1.74,1.74
64,Auto Ancillaries,Equity,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,计算机-软件-Large,Equity,7.56,7.56
70,家用电器,股票,3.83,3.83
71,电气设备,股权,0.55,0.55
72,Engines,Equity,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,Net CA及其他,Net 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,Net 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")
答案 0 :(得分:0)
在这种特殊情况下,如果没有适当的数据样本,几乎不可能提供完整的解决方案。我要测试的第一件事是设置
branchvalues="remainder"