Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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 为绘图中选定的社区指定颜色_R_Plot_Igraph - Fatal编程技术网

R 为绘图中选定的社区指定颜色

R 为绘图中选定的社区指定颜色,r,plot,igraph,R,Plot,Igraph,在一个情节中,我需要给两个特定的社区涂上颜色。以以下数据帧为例: A B C D E F G A 0 1 0 1 0 1 0 B 1 0 1 1 0 1 0 C 0 1 0 0 0 0 0 D 1 1 0 0 1 1 0 E 0 0 0 1 0 1 0 F 1 1 0 1 1 0 1 G 0

在一个情节中,我需要给两个特定的社区涂上颜色。以以下数据帧为例:

    A   B   C   D   E   F   G
A   0   1   0   1   0   1   0
B   1   0   1   1   0   1   0
C   0   1   0   0   0   0   0
D   1   1   0   0   1   1   0
E   0   0   0   1   0   1   0
F   1   1   0   1   1   0   1
G   0   0   0   0   0   1   0

ob <- read.csv("...ties.csv",sep = ",", header = TRUE, row.names = 1)
m <- as.matrix(ob)
g <- graph.adjacency(m, mode="undirected", weighted = T, add.rownames = T)
此操作生成许多社区,如com[[1]]、com[[2]]等。我使用以下代码绘制生成的图形(每个社区一种颜色):

plot(g, vertex.color=membership(com))

现在,我如何仅为两个选定的社区着色,例如com[[1]]和com[[2]],以保持其余节点的同质性?

我必须调整邻接矩阵,以便显示多个社区

library(igraph)
ob <- read.table(text="
    A   B   C   D   E   F   G
A   0   1   0   1   0   1   0
B   1   0   1   1   0   1   0
C   0   0   0   0   0   0   0
D   1   1   0   0   1   0   0
E   0   0   0   1   0   1   1
F   0   1   0   0   1   0   1
G   0   0   0   0   1   1   0", header=TRUE)

m <- as.matrix(ob)
g <- graph.adjacency(m, mode="undirected", weighted = T, add.rownames = T)
com <- edge.betweenness.community(g)
V(g)$memb <- com$membership

cols <- membership(com)  
cols[cols!=3] <- 1

plot(g, vertex.color=cols)
库(igraph)

ob我不得不调整你的邻接矩阵,这样就出现了一个以上的社区

library(igraph)
ob <- read.table(text="
    A   B   C   D   E   F   G
A   0   1   0   1   0   1   0
B   1   0   1   1   0   1   0
C   0   0   0   0   0   0   0
D   1   1   0   0   1   0   0
E   0   0   0   1   0   1   1
F   0   1   0   0   1   0   1
G   0   0   0   0   1   1   0", header=TRUE)

m <- as.matrix(ob)
g <- graph.adjacency(m, mode="undirected", weighted = T, add.rownames = T)
com <- edge.betweenness.community(g)
V(g)$memb <- com$membership

cols <- membership(com)  
cols[cols!=3] <- 1

plot(g, vertex.color=cols)
库(igraph)

ob向我们展示你的数据的可复制示例。我现在添加了一个。这有帮助吗?给我们展示你的数据的可复制的例子。我现在添加了一个。这有用吗?谢谢你。1和3在代码中是什么意思?成功了,但我不确定到底发生了什么。在我的真实矩阵中,我有37个社区。如何为多个选定社区着色?
cols[cols!=3]谢谢。1和3在代码中是什么意思?成功了,但我不确定到底发生了什么。在我的真实矩阵中,我有37个社区。如何为多个选定社区着色?
cols[cols!=3]