我想使用Sankey流程图来可视化美国各州的排名变化(即相对顺序的变化)。我正在使用networkd3包,并提出了以下内容:
library(dplyr)
library(networkD3)
df <- data_frame(origins=state.name[1:10], destinations=state.name[1:10])
lab <- c(df$origins, df$destinations)
nodes <- data.frame(node=c(0:9), name=lab)
links <- data.frame(source=c(0:9), target=c(10:19), value=rep(1,10))
sankeyNetwork(Links = links, Nodes = nodes, Source = 'source',
Target = 'target', Value = 'value', NodeID = 'name')此代码段生成以下图表:美国各州的Sankey flow图表

我现在可以手动更改相对顺序了。然而,我想知道是否有可能将顺序放在右边,并将阿拉巴马州放在第三位,加州放在第一位,等等……
发布于 2018-09-08 05:27:17
如果在sankeyNetwork()中设置iterations = 0,将有效地禁用自动确定节点放置的算法(这是sankeyNetwork()函数的主要用途),并且节点将按照它们在Nodes数据帧中出现的顺序进行放置。
library(networkD3)
states <- state.name[1:10]
ranks <- sample.int(10)
nodes <- data.frame(name = c(states, states[ranks]))
links <- data.frame(source = 1:10 - 1, target = order(ranks) + 10 - 1, value = 1)
sankeyNetwork(Links = links, Nodes = nodes, Source = 'source',
Target = 'target', Value = 'value', NodeID = 'name',
iterations = 0)

https://stackoverflow.com/questions/52229334
复制相似问题