【问题标题】:What kind of data do you input for a Sankey Diagram in R?您为 R 中的桑基图输入了什么样的数据?
【发布时间】:2016-10-15 14:37:52
【问题描述】:

我是 R 新手,正在尝试使用示例数据通过 rCharts 创建一个桑基图。

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

这是我试图代替上述示例的源、目标和值输入的内容:

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

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

value <- c(1, 2, 2, 1, 1, 1, 4, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2)

为清楚起见,这是我使用我的数据生成的一个较小的示例:

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

这也会崩溃。我对桑基图的理解是,这应该产生一个图表,其中“2”流向“4”,“5”流向“2”和“5”,线条粗细相同。

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

【问题讨论】:

    标签: r rcharts sankey-diagram


    【解决方案1】:

    这也会崩溃。

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

    我对桑基图的理解是 应该生成一个图表,其中“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 之间的微小差异......

    【讨论】:

    • 谢谢!我拿出了我链接的例子,昨天意识到了我的错误。我可以通过重命名目标向量中的变量来解决它,但我更喜欢你的版本。
    猜你喜欢
    • 2019-10-20
    • 2016-04-06
    • 2012-04-15
    • 2021-07-29
    • 2018-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多