美文网首页
使用R语言绘制桑基图

使用R语言绘制桑基图

作者: SCU十一 | 来源:发表于2023-09-13 12:52 被阅读0次

1.加载包


library("reshape2")

library(networkD3)

library(webshot)

library(tidyverse)

library(dplyr)

library(webshot)

library(htmlwidgets)

2.准备文件,一共需要2个文件。

第一个文件是你的数据文件,文件需要4列,第一列是桑吉图的左边source,第二列是画在右边的target,第三列是它们之间的值。第四列是你想要的中间连线的颜色

图1.data文件

3.准备第二个文件,node文件,给每个节点一个数字编号,必须从0开始


factor_list <- sort(unique(union(data$target,data$source)))

node <- data.frame(name=c(factor_list),num_list=0:(length(factor_list)-1))

图2.node文件

4.调整第一个文件,增加2列,把target和source的名字对应的节点编号,增加到文件中。一共6列


data<-merge(data,node,by.x="source",by.y="name",all.x=T)

data<-merge(data,node,by.x="target",by.y="name",all.x=T)

colnames(data)[5]="source2"

colnames(data)[6]="target2"

图3.data文件最终是6列

5.开始画图


test=sankeyNetwork(Links = data, Nodes = node,Source = "source_node_id", Target = "target_node_id",Value = "value", NodeID = "name",fontSize= 20, nodeWidth = 30)

saveNetwork(test, "sankey.html",selfcontained = F)

webshot("sankey.html", "sankey.pdf")

图4.桑基图

这就完成啦

相关文章

网友评论

      本文标题:使用R语言绘制桑基图

      本文链接:https://www.haomeiwen.com/subject/jzkuvdtx.html