首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >修正R/ networkD3包中Sankey流程图的顺序

修正R/ networkD3包中Sankey流程图的顺序
EN

Stack Overflow用户
提问于 2018-09-08 04:35:04
回答 1查看 2.3K关注 0票数 6

我想使用Sankey流程图来可视化美国各州的排名变化(即相对顺序的变化)。我正在使用networkd3包,并提出了以下内容:

代码语言:javascript
复制
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图表

我现在可以手动更改相对顺序了。然而,我想知道是否有可能将顺序放在右边,并将阿拉巴马州放在第三位,加州放在第一位,等等……

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-08 05:27:17

如果在sankeyNetwork()中设置iterations = 0,将有效地禁用自动确定节点放置的算法(这是sankeyNetwork()函数的主要用途),并且节点将按照它们在Nodes数据帧中出现的顺序进行放置。

代码语言:javascript
复制
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)

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52229334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档