我正在尝试使用networkD3库在R中构建sankey图。
我有以下数据
print(nodes1)
name
1 as
2 sdf
3 wer
4 xc
5 sd
6 er
print(links)
source target value
1 0 5 112
2 0 4 848
3 0 4 661
4 0 4 33
5 0 3 291
6 1 5 23
7 1 4 983
8 1 3 859
9 1 3 35
10 2 4 537
所以当我尝试使用以下代码创建sankeyNetwork时
sankeyNetwork(Links = links1, Nodes = nodes1,
Source = "source", Target = "target",
Value = "value", NodeID = "name",
fontSize= 12, nodeWidth = 30)
我得到以下结果。
但是,它不是按顺序打印节点。
在我的节点数据帧中,我有“as”是第一个节点,“sdf”是第二个节点。但是,在图像中,我将“as”作为第一个节点,“wer”作为第二个节点。
我如何确定,图表遵循节点中的顺序?
答案 0 :(得分:4)
如果设置iterations = 0
,那么执行节点自动定位的算法基本上不会运行并将节点保留在初始位置......
nodes <- read.table(header = T, text = "
name
as
sdf
wer
xc
sd
er
")
links <- read.table(header = T, text = "
source target value
0 5 112
0 4 848
0 4 661
0 4 33
0 3 291
1 5 23
1 4 983
1 3 859
1 3 35
2 4 537
")
library(networkD3)
sankeyNetwork(Links = links, Nodes = nodes,
Source = "source", Target = "target",
Value = "value", NodeID = "name",
fontSize= 12, nodeWidth = 30, iterations = 0)