R - riverplot格式化节点

时间:2014-08-05 09:18:50

标签: r sankey-diagram riverplot

我一直在摆弄河图包,并产生了一些非常有吸引力和说明性的结果。我现在正试图制作一个更复杂的情节,我得到的一些结果有点出乎意料。我有一个最小的例子说明了这个问题。这是情节:

riverplot example with anomalous node widths

我的问题在于节点B,C和E的宽度。这些图的想法(据我所知)是节点的宽度由流入/流出的河流的总宽度决定。节点。现在对于节点A,D和F来说肯定是这种情况。但是其他三个节点要么比它们附着的河流更宽/更窄。这不是什么大问题,但它确实减损了情节的影响。

我在构建数据时犯了错误,或者我误解了程序包在内部的工作方式。在任何一种情况下,我都非常感谢任何反馈!

祝你好运, 安德鲁。

这是代码。使用dput()转储数据结构。

library(riverplot)

RP <- structure(list(
  nodes = structure(
    list(
      ID = structure(c(1L, 3L, 5L, 2L, 4L, 6L), .Label = c("A", "D", "B", "E", "C", "F"), class = "factor"),
      x = c(1L, 1L, 1L, 2L, 2L, 2L)
    ), .Names = c("ID", "x"), row.names = c("A", "B", "C", "D", "E", "F"), class = "data.frame"), 
  edges = structure(
    list(
      N1 = c("A", "A", "A", "B", "B", "B", "C", "C", "C"),
      N2 = c("D", "E", "F", "D", "E", "F", "D", "E", "F"),
      Value = c(0.265, 0.372, 0.572, 0.908, 0.201, 0.898, 0.944, 0.660, 0.629)
    ), .Names = c("N1", "N2", "Value"), row.names = c(NA, -9L), class = "data.frame")),
  .Names = c("nodes", "edges"), class = c("list", "riverplot"))

plot(RP, plot_area = 0.85)

1 个答案:

答案 0 :(得分:1)

事实证明,河图包中有一个小错误。软件包作者修复了它,新版本(v0.3)将适用于这种情况。