Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R ggnet按类别添加节点颜色_R_Ggplot2 - Fatal编程技术网

R 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"

我试图制作一个网络图,其中节点将使用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",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。我在问题中添加了图片,并在评论中添加了链接。我进行了编辑,这样新的彩色图片就会出现在答案中——人们会在这里找到它。