你为R中的Sankey图输入了什么样的数据?

时间:2016-06-14 18:07:32

标签: r rcharts sankey-diagram

我是R的新手,并试图使用示例数据使用rCharts创建一个Sankey图。

我已经this code运行了,它按预期运行。但是,当我使用源,目标和值向量编辑该代码时,R崩溃并且不生成图表。

以下是我试图代替上述示例的来源,目标和价值观点:

source <- c('2', '5', '5')
target <- c('4', '2', '5')
value <- c(1, 1, 1)

为清楚起见,这是我使用我的数据制作的一个较小的例子:

GeneralizeTask()

这也崩溃了。我对Sankey Diagrams的理解是,这应该产生一个图表,其中&#39; 2&#39;流向&#4;&#39;和&#39; 5&#39;流向&#39; 2&#39;和&#39; 5&#39;用相同厚度的线。

我假设数据本身存在问题,因为我尝试使用与我见过的其他示例相同的格式。如果有人能够解释我在这里理解的错误,那将非常感激!

1 个答案:

答案 0 :(得分:1)

  

这也崩溃了。

由于自循环5到5而崩溃,这没有任何意义。名称为5的节点应位于源端或目标端。

  

我对Sankey Diagrams的理解就是这个   应该产生一个图表,其中'2'流向'4','5'流向'2'   并且'5'具有相同厚度的线。

You could do e.g.

source <- c('2', '2', '5')
target <- c('4', '5 ', '5 ')
value <- c(1, 1, 1)
df <- cbind.data.frame(source, target, value)
library(rCharts)
sankeyPlot <- rCharts$new()
sankeyPlot$setLib('http://timelyportfolio.github.io/rCharts_d3_sankey')
sankeyPlot$set(
  data = df,
  nodeWidth = 10,
  nodePadding = 15,
  width = 300,
  height = 300
)
sankeyPlot

注意源中5和目标矢量中5之间的微小差异......