基本簡(jiǎn)介
桑基圖(Sankey diagram) 是用于描述一組值到另一組值流向的圖表阅悍,可以查看數(shù)據(jù)的變化情況好渠。主要應(yīng)用于能源、零售节视、金融拳锚、自媒體等數(shù)據(jù)的可視化分析。在R語言中寻行,苫舨簦基圖主要用到的是networkD3包。
示例代碼
#networkD3包繪制砂柚基圖
#安裝需要的R包
#處理數(shù)據(jù)
#install.packages("dplyr")
#繪制筛怂福基圖
#install.packages("networkD3")
#調(diào)用需要的R包
library(dplyr)
library(networkD3)
#產(chǎn)生數(shù)據(jù)集
#設(shè)置種子
set.seed(1234)
#構(gòu)建數(shù)據(jù)集
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)
#轉(zhuǎn)化為因子
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
#查看數(shù)據(jù)
head(data)
#作圖
sankeyNetwork(Links = data, Nodes = nodes,
Source = "ID_AA", Target = "ID_BB", Value = "Value",
NodeID = "node",
fontSize= 18, nodeWidth = 30)
參考文獻(xiàn)
[1] https://www.modb.pro/db/509252
[2] https://zhuanlan.zhihu.com/p/482446403