基本简介
桑基图(Sankey diagram) 是用于描述一组值到另一组值流向的图表,可以查看数据的变化情况。主要应用于能源、零售、金融、自媒体等数据的可视化分析。在R语言中,桑基图主要用到的是networkD3包。
示例代码
#networkD3包绘制桑基图
#安装需要的R包
#处理数据
#install.packages("dplyr")
#绘制桑基图
#install.packages("networkD3")
#调用需要的R包
library(dplyr)
library(networkD3)
#产生数据集
#设置种子
set.seed(1234)
#构建数据集
data <- data.frame(
AA = paste0("AA_",1:5) %>% sample(100, replace = TRUE),
BB = paste0("BB_", 1:10) %>% sample(100, replace = TRUE),
Value = runif(100, 1, 10))
#查看前15行
head(data, 15)
#转化为因子
data <- data %>% mutate_if(is.character, as.factor)
str(data)
nodes <- data.frame(node = c(data$AA, data$BB)) %>% unique()
data$ID_AA <- match(data$AA, nodes$node) - 1
data$ID_BB <- match(data$BB, nodes$node) - 1
#查看数据
head(data)
#作图
sankeyNetwork(Links = data, Nodes = nodes,
Source = "ID_AA", Target = "ID_BB", Value = "Value",
NodeID = "node",
fontSize= 18, nodeWidth = 30)
参考文献
[1] https://www.modb.pro/db/509252
[2] https://zhuanlan.zhihu.com/p/482446403
网友评论