?;鶊D,繪制人口流動、網(wǎng)絡(luò)等表征信息流動關(guān)系或者對應(yīng)關(guān)系的圖表。
使用bipartite包自帶的二分網(wǎng)絡(luò)數(shù)據(jù)進行繪制。
library(igraph)
library(networkD3)
library(bipartite)
library(tidyr)
data(Safariland)
nodes = data.frame(ID = unique(c(rownames(Safariland),colnames(Safariland))), stringsAsFactors = FALSE)
edges <- Safariland %>% as.data.frame() %>% tibble::rownames_to_column(.,var = "plants") %>%
pivot_longer(cols = !plants ,names_to = "animals") %>%
mutate(value = if_else(value>0,1,0))%>%
filter(value!=0) %>% as.data.frame()
edges$plants <- match(edges$plants, nodes$ID) - 1
edges$animals <- match(edges$animals, nodes$ID) - 1
networkD3::sankeyNetwork(Links = edges ,
Nodes = nodes,
Source = "plants",
Target = "animals",
Value = "value",
NodeID = "ID")
需要注意的地方在于 match 定義順序后需要再減一
edges$plants <- match(edges$plants, nodes$ID) - 1
edges$animals <- match(edges$animals, nodes$ID) - 1

image.png