R ggnet按类别添加节点颜色
我试图制作一个网络图,其中节点将使用ggnet按类别着色 示例代码:R ggnet按类别添加节点颜色,r,ggplot2,R,Ggplot2,我试图制作一个网络图,其中节点将使用ggnet按类别着色 示例代码: install.packages("GGally") library(GGally) devtools::install_github("briatte/ggnet") library(ggnet) library(network) library(sna) library(ggplot2) #input data n1 = data.frame(family = c(rep("fam.A",3), rep("fam.B"
install.packages("GGally")
library(GGally)
devtools::install_github("briatte/ggnet")
library(ggnet)
library(network)
library(sna)
library(ggplot2)
#input data
n1 = data.frame(family = c(rep("fam.A",3), rep("fam.B",3), rep("fam.C",2)),member = c("a1", "a2", "a3", "b1", "b2","b3", "c1", "c2"))
n2 = data.frame(family = c(rep("fam.A",3), rep("fam.B",3), rep("fam.D",2)),member = c("a1", "a4", "a5", "b4", "b5","b6", "d1", "d2"))
n = rbind(n1, n2)
n$category = c("common", rep("type-n1",7), rep("type-n2",8))
#make network
net = network(as.matrix(n[,1:2]), directed = FALSE)
ggnet2(net, label = TRUE, alpha = 1)
输出如下所示。但是,我想按我拥有的类别为节点着色,例如,普通、n1型、n1型
我通过以下方式解决了这个问题:
e2 = n
net2 = network(e2, directed = TRUE)
x2 = data.frame(Type = network.vertex.names(net2))
x2 = factor(c("common", rep("Type-n1",6), rep("Type-n2",8), rep("fam", 4)))
net2 %v% "color" = as.character(x2)
y2 = RColorBrewer::brewer.pal(9, "Set1")[ c(3, 1, 9,6, 7) ]
names(y2) = levels(x2)
ggnet2(net2, color = "color", palette = y2, alpha = 0.75, size = 5,
edge.alpha = 0.5, label = TRUE)
屈服:
这是:[![ggnet][1][1][1]:@MikeWise。我在问题中添加了图片,并在评论中添加了链接。我进行了编辑,这样新的彩色图片就会出现在答案中——人们会在这里找到它。