我正在尝试使用 plotly 的 sunburst 和 treemap 来可视化数据。但是,我发现子节点与其父节点相比显示的大小不正确,即子节点的大小之和不包括父节点的大小:
import plotly.graph_objects as go
fig =go.Figure(go.Treemap(
labels= ["i_1", "i_2", "c_a", "i_3", "c_b"],
parents= ["c_a", "c_a", "", "c_b", ""],
values= [3, 2, 5, 2, 2],
))
fig.show()
输出:
如您所见,在原始数据中,i_1 和 i_2 的总和为 5,等于其父 c_a 的 5。但是在图中,“c_a” block 并没有被 i_1 和 i_2 一起填充。 i_3 和 c_b 也是如此。即使鼠标悬停弹出窗口显示正确的值。
旭日形可视化也是如此:
import plotly.graph_objects as go
fig =go.Figure(go.Sunburst(
labels= ["i_1", "i_2", "c_a", "i_3", "c_b"],
parents= ["c_a", "c_a", "", "c_b", ""],
values= [3, 2, 5, 2, 2],
))
fig.show()
同样,i_1 和 i_2 并没有涵盖 c_a 的整个范围。
设置是否强制 plotly 真实地表示父子大小的比例。老实说,当前的表示法不能用于我的目的。
请您参考如下方法:
是的,设置 branchvalues="total"。默认值为 "remainder",它将值添加到子项的总和中,如您在图中所见。您也可以保留该设置并将所有非叶节点的值设置为 0。
