Plotly的矩形树图和旭日图显示错误大小

3
我正在尝试使用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()

输出:

Treemap output

正如您所看到的,在原始数据中,i_1和i_2的总和为5,等于它们的父级c_a的5。但在图表中,“c_a”块没有被i_1和i_2填满。i_3和c_b也是如此。即使mouseover弹出窗口显示了正确的值。
太阳图可类比此情况:
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()

sunburst graph

再次强调,i_1和i_2的组合并不能覆盖c_a的全部范围。

是否有设置可以强制Plotly真实地表示父子大小比例。老实说,当前的表示对我的目的来说是不可用的。

1个回答

4

是的,设置branchvalues="total"。默认值是"remainder",它将该值添加到子节点的总和中,正如您在图表中所看到的。您也可以保持默认设置,并将所有非叶节点的值设置为0。


1
在大数据集的情况下,分支值似乎会影响Jupyter的运行。小数据集?没问题。大数据集?单元格很快就完成了运行,但输出是白色的。这个参数有bug吗? - dgg32
一些用户报告了这种行为,但是还没有人能够共享一个数据集,以便我们的开发团队可以复制和修复它... 如果您有这样的数据集或可重现的代码示例,请在此处提交问题,我们将会解决:https://github.com/plotly/plotly.py/issues/new - nicolaskruchten
我所处理的数据来自Kaggle的“预测未来销售”比赛,具体来说是sales_train.csv.gz。然而,用户需要同意比赛条款才能访问,因此最好您访问该网站并进行操作。我尝试的代码是绘制所有物品的销售额,并嵌入它们的类别(父级)中。但我得到的只是一个空单元格,branchvalues="total"甚至没有参数。 - dgg32

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接