sankeyD3>“ NodePosX”的sankeyNetwork实现

时间:2018-07-14 21:42:40

标签: r sankey-diagram htmlwidgets networkd3

我一直在使用sankeyD3包来创建SankeyNetworks,而'NodePosX'功能目前还不适用于我。 “ NodePosX”功能不在“ networkD3”程序包中,但在“ sankeyD3”程序包中。

为帮助说明我遇到的问题,我编辑了发布于here的akraemer007中的示例,以包含节点的X位置(请参见下文),但仍然无法以他的方式工作最初希望通过手动控制“选择退出”节点的x位置来实现。

我们的目标是这样的,但是没有从“选择退出”到“已激活”的小句:enter image description here

library(devtools)
devtools::install_github("fbreitwieser/sankeyD3")
library(sankeyD3)
name <- c('Enrolled', 'Opted-Out', 'Invited', 'Activated')
xpos <- c(0, 1, 1, 2)
nodes <- data.frame(name, xpos)

source <- c(0, 0, 2, 1) 
target <- c(1, 2, 3, 3) 
value <- c(20, 80, 60, 0) 
links <- data.frame(source, target, value)
sankeyNetwork(Links = links, Nodes = nodes, Source = "source",
          Target = "target", Value = "value", NodeID = "name",NodePosX = "xpos",
          units = "TWh", fontSize = 12, nodeWidth = 30)

1 个答案:

答案 0 :(得分:2)

假设links数据框中的最后一行仅用于迫使绘图以所需的方式显示,而不是要绘图的实际数据的一部分,则可以使用{{3} },使用sinksRight = FALSE参数。

library(networkD3)

name <- c('Enrolled', 'Opted-Out', 'Invited', 'Activated')
xpos <- c(0, 1, 1, 2)
nodes <- data.frame(name, xpos)

source <- c(0, 0, 2)
target <- c(1, 2, 3)
value <- c(20, 80, 60)
links <- data.frame(source, target, value)

sankeyNetwork(Links = links, Nodes = nodes, Source = "source",
              Target = "target", Value = "value", NodeID = "name",
              units = "TWh", fontSize = 12, nodeWidth = 30, sinksRight = FALSE)