【R语言】--- 桑基图

基本简介

桑基图(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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容