了解sunburstR行为

时间:2016-05-30 08:23:54

标签: r plot sunburst-diagram

我有> head(dd) # paths counts #1 s 4735 #2 dt 4635 #3 so 2191 #4 sb 1949 #5 dt-dt 1310 #6 s-s 978 看起来与此示例类似:

-

路径中的不同步骤由sunburst分隔。如您所见,某些路径长度为1,有些路径为> 1。 1步(示例中最多5步)。

现在我想使用sunburstR包将数据可视化为# devtools::install_github("timelyportfolio/sunburstR") library(sunburstR) sunburst(dd) 图。我是这样做的:

sunburst(tail(dd, 8))

不幸的是,这不会产生任何输出,我不明白为什么。另一个例子,这可以按预期工作:

sunburst(tail(dd, 9))

但这不是:

sunburst(dd[c(5, 1:4),])

我也注意到了

dt

产生一个情节,但令人惊讶的是,dd <- structure(list(paths = c("s", "dt", "so", "sb", "dt-dt", "s-s", "so-dt", "dt-dt-dt", "sb-sb", "so-so", "s-s-s", "s-rd", "dt-dt-dt-dt", "s-sb", "a", "so-dt-dt", "s-rd-rd", "r", "dt-s", "so-sb", "dt-sb", "s-rd-rd-rd", "dt-rd", "dt-dt-dt-dt-dt", "so-dt-dt-dt"), counts = c(4735L, 4635L, 2191L, 1949L, 1310L, 978L, 558L, 455L, 324L, 281L, 266L, 231L, 208L, 200L, 200L, 196L, 156L, 150L, 142L, 129L, 123L, 114L, 113L, 113L, 100L)), .Names = c("paths", "counts"), class = "data.frame", row.names = c(NA, -25L)) 类别被吐成两个块,通常应该在第一个(最里面)的水平上显示为一个块。

问:有人可以向我解释为什么会发生这种情况(某些方法有效,有些方法有效但有些方法但显示数据有些不正确)以及我需要做些什么来形象化数据集(不仅仅是样本数据)?

示例数据

[(1,), (2,), (3,), (5,)]
[(4,)]    
[(2,)]
[(1,), (2,), (3,), (4,)]

1 个答案:

答案 0 :(得分:6)

dd包含其他序列的序列:

tail(dd, 9)
#             paths counts
# 17        s-rd-rd    156 # <-----
# 18              r    150
# 19           dt-s    142
# 20          so-sb    129
# 21          dt-sb    123
# 22     s-rd-rd-rd    114 # <-----
# 23          dt-rd    113
# 24 dt-dt-dt-dt-dt    113
# 25    so-dt-dt-dt    100

E.g。 s-rd-rds-rd-rd-rd的一部分。 sunburst似乎扼杀了这一点。 在package author's example中,您会注意到其他内容 -end以防止此类情况发生。 tips here

中也提到了这一点
  

每一行应该是从根到叶的完整路径 - 不要包含   计算中间步骤。例如,包括&#34; home-search-end&#34;   和&#34; home-search-product-end&#34;但不是&#34;家庭搜索&#34; - 后者是   通过分区布局计算,通过将所有的计数相加   具有该前缀的序列。

这似乎也可以解决这个问题:

transform(tail(dd, 9), paths=paste0(paths, "-end"))
#                 paths counts
# 17        s-rd-rd-end    156
# 18              r-end    150
# 19           dt-s-end    142
# 20          so-sb-end    129
# 21          dt-sb-end    123
# 22     s-rd-rd-rd-end    114
# 23          dt-rd-end    113
# 24 dt-dt-dt-dt-dt-end    113
# 25    so-dt-dt-dt-end    100

sunburst(transform(tail(dd, 9), paths=paste0(paths, "-end")))

enter image description here