【问题标题】:Plotly's treemap and sunburst show wrong sizesPlotly 的树形图和旭日形图显示错误的大小
【发布时间】:2020-03-23 05:40:27
【问题描述】:

我正在尝试使用 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”块并没有被 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 的整个范围。

是强制情节真实地表示父子大小比例的设置。老实说,当前的表示不适用于我的目的。

【问题讨论】:

    标签: python plotly visualization treemap sunburst-diagram


    【解决方案1】:

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

    【讨论】:

    • 似乎在大数据集的情况下,分支值决定或破坏 jupyter 运行。小数据集?好的。大数据集?单元格快速完成运行,但输出为白色。这个参数有问题吗?
    • 一些用户报告了此行为,但尚未有人能够共享导致此问题的数据集,以便我们的开发团队可以复制和修复它...如果您有这样的数据集或可重现的代码例如,请在此处提交问题,我们将修复它:github.com/plotly/plotly.py/issues/new
    • 我处理的数据来自 Kaggle 的预测未来销售额“kaggle.com/c/competitive-data-science-predict-future-sales”,确切地说是 sales_train.csv.gz。但是,用户需要同意比赛的条款才能访问,因此您最好访问该网站并继续进行。我尝试的代码是绘制所有商品的销售额并嵌入到它们的类别(父母)中。我得到的只是一个带有 branchvalues="total" 的空单元格,甚至可能没有参数。
    猜你喜欢
    • 1970-01-01
    • 2021-09-09
    • 2022-01-04
    • 2020-11-14
    • 2020-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多