Если ваши узлы не сгруппированы, то вы можете просто добавить столбец группы к данным ваших узлов, где значение одинаково для каждого узла, например ...
myLinks$group <- 1
Если ваши данные сгруппированы, затем добавьте эти данные в ваш фрейм данных Nodes и обратитесь к имени этого столбца в аргументе Group
.
Если вы добавили свои данные, это то, как их можно достичь (Group = "NodeType"
) ...
links <-
data.frame(
stringsAsFactors = FALSE,
Source = c("5-HT1A", "5-HT2A", "5-HT2C", "5-HT2C"),
Target = c("depression", "depression", "Anxiety", "depression"),
EdgeWt = c(4, 5, 3, 4)
)
nodes <- data.frame(
stringsAsFactors = FALSE,
Id = c("5-HT1A", "5-HT2A", "5-HT2C", "ACNE", "ACTA", "ACTH"),
NodeType = c(
"GeneSymbol",
"GeneSymbol",
"GeneSymbol",
"Disease",
"GeneSymbol",
"GeneSymbol"
)
)
nodes <- rbind(nodes, c("depression", "Disease"), c("Anxiety", "Disease"))
links$Source <- match(links$Source, nodes$Id) - 1
links$Target <- match(links$Target, nodes$Id) - 1
library(networkD3)
forceNetwork(Links = links, Nodes = nodes,
Source = "Source", Target = "Target",
Value = "EdgeWt", NodeID = "Id",
Group = "NodeType", opacityNoHover = 1,
opacity = 1, fontSize = 10)