【发布时间】:2022-01-04 10:30:27
【问题描述】:
我正在处理网络数据,并希望使用 r 中的 networkd3 包中的 sankeyNetwork() 将其可视化。
在我的数据框中,我有一个源节点和一个目标节点、值和一个分组列组。
- 如何在不着色节点的情况下制作 sankey 图(源和目标都没有颜色)?
- 我想通过变量组
LinkGroup = "group"为链接线着色,并且我想知道如何制作图例以显示链接的不同颜色实际上代表组变量。
这里是代码和数据框...
# Libraries
library(dplyr)
library(tidyr)
library(tibble)
library(networkD3)
# Load dataset from github
data <- read.table("https://raw.githubusercontent.com/holtzy/data_to_viz/master/Example_dataset/13_AdjacencyDirectedWeighted.csv", header=TRUE) %>%
rownames_to_column() %>%
gather(key = "key", value = "value", -rowname) %>%
filter(value > 0) %>%
rename(source = rowname, target =key) %>%
select("source", "target", "value") %>%
mutate(group = c(rep("A", 10), rep("B",7), rep("C", 8), rep("D", 10)))
nodes <- data.frame(name=c(as.character(data$source), as.character(data$target)) %>% unique())
data$IDsource=match(data$source, nodes$name)-1
data$IDtarget=match(data$target, nodes$name)-1
# Make the Network
sankeyNetwork(Links = data,
Nodes = nodes,
Source = "IDsource",
Target = "IDtarget",
Value = "value",
NodeID = "name",
sinksRight=FALSE,
nodeWidth=40,
fontSize=13,
nodePadding=20,
LinkGroup = "group")
【问题讨论】:
-
“无色”是指白色吗?
-
是的,可以....我的目标不是为节点着色,而是根据组变量仅对链接器线着色,并为链接器线提供图例
标签: networkd3 r javascript r d3.js sankey-diagram htmlwidgets