mag*_*ale 6 python plotly sunburst-diagram plotly-dash
因此,我正在尝试构建一个 Plotly sunburst 图,用于显示percentParent图中的每个元素。这适用于所有元素,除了当我只有一个中央节点/环/其他选项时(请参见下面的示例)
由于中心节点显然没有父节点,因此它似乎会出错并显示percentParent来自texttemplate字段的括号内的调用。但是,如果有 2 个(或更多)中心节点,它会自动计算每个中心节点占两个节点总和的百分比。
我的问题是:当我只有 1 个中心节点时,如何仅为中心节点隐藏此字段或使其正确显示“100%”?
示例代码:
import pandas as pd
import plotly.graph_objects as go
df = pd.DataFrame({'node_names': ['Center', 'Yes', 'No'],
'node_parent': ['', 'Center', 'Center'],
'node_labels': ['Center', 'Center_Yes', 'Center_No'],
'node_counts': [1000, 701, 299]})
fig = go.Figure(
data=go.Sunburst(
ids=df["node_names"],
labels=df["node_labels"],
parents=df["node_parent"],
values=df["node_counts"],
branchvalues="total",
texttemplate = ('%{label}<br>%{percentParent:.1%}'),
),
)
fig.show()
Run Code Online (Sandbox Code Playgroud)
在这里我找到了阅读帮助的可能方法go.Sunburst.texttemplate?
import pandas as pd
import plotly.graph_objects as go
df = pd.DataFrame({'node_names': ['Center', 'Yes', 'No'],
'node_parent': ['', 'Center', 'Center'],
'node_labels': ['Center', 'Center_Yes', 'Center_No'],
'node_counts': [1000, 701, 299]})
fig=go.Figure(
data=go.Sunburst(
ids=df["node_names"],
labels=df["node_labels"],
parents=df["node_parent"],
values=df["node_counts"],
branchvalues="total",
texttemplate = ('%{label}',
'%{label}<br>%{percentParent:.1%}',
'%{label}<br>%{percentParent:.1%}',
'%{label}<br>%{percentParent:.1%}'),
),
)
fig.show()
Run Code Online (Sandbox Code Playgroud)
texttemplate您最终可以修改as中的第一个元素'%{label}<br>100%'。