[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[igraph] cohesive.blocks()
From: |
MATSUDA, Noriyuki |
Subject: |
[igraph] cohesive.blocks() |
Date: |
Mon, 28 Apr 2008 17:54:20 +0900 |
Hello:
I have some difficulty in relating the performance of
cohesive.blocks() to the original paper by Moody and White (2003),
particularly the concepts of components and blocks. Here is my trial
on Figures 2 and 3 in the paper:
It separates terminal (bottom) blocks 4 and 5, leaving {17-23}
unextracted. Do we need to identify {17-23} by taking the
difference between blocks 2 and 4? If so, it would require a lot of
care even with a graph of medium size. Or have I made errors in
specifying edges?
Thanks in advance for helping me out.
----------- Here you go ----------------------------
# Structural Cohesion and Embeddedness: A Hierarchical Concept of
Social Groups
# James Moody; Douglas R. White
# American Sociological Review, Vol. 68, No. 1. (Feb., 2003), pp.
103-127.
library(igraph); options(digits=3)
plotting <- function(g,msg){
V(g)$label=paste("v",1:vcount(g),sep="")
V(g)$cex=6
V(g)$color="#FeFeFf"
plot(g,layout=layout.fruchterman.reingold.grid)
title(main=msg)
}
##Main
m <- c(1,2,1,3,1,4,1,5,1,6, 2,3,2,4,2,5,2,7,
3,4,3,6,3,7, 4,5,4,6,4,7, 5,6,5,7,5,21, 6,7,
7,8,7,11,7,14,7,19, 8,9,8,11,8,14, 9,10,
10,12,10,13,11,12,11,14, 12,16,
13,16, 14,15,15,16,
17,18,17,19,17,20, 18,20,18,21, 19,20,19,22,19,23,
20,21, 21,22,21,23, 22,23) - 1
g <- graph(m,directed=F)
plotting(g,msg="Fig.2")
#quartz(width=8,height=8)
gb <- cohesive.blocks(g)
#plot(gb, vertex.size=10, emph=c
(1,2),layout=layout.fruchterman.reingold)
# to emphasize blocks 1 & 2 in bgraph
quartz(width=8,height=8)
plotBlocks <- function(g,gblocks,msg){
V(g)$label=paste("v",1:vcount(g),sep="")
V(g)$cex=6
colors <- c
("#FeFeFf","#FeDeDf","#BeFeBf","#9e9eFf","#Ae8e8f","#7eAe7f")
V(g)$color[ V(g) %in% gblocks[[2]] ]=colors[2]
for (k in 1:length(gblocks)){
V(g)$color[ V(g) %in% gblocks[[k]] ]=colors[k]
}
plot(g,layout=layout.fruchterman.reingold.grid)
title(main=msg)
}
plotBlocks(g,gb$blocks,"Fig.2 by hand")
for (k in 1:length(gb$blocks)){
b <- gb$blocks[[k]]
cat("block",k,": cohesion| nodes=", gb$block.cohesion,"| ",b +1,,"\n")
}
#block 1 : cohesion| nodes= 1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
16 17 18 19 20 21 22 23
#block 2 : cohesion| nodes= 2 | 1 2 3 4 5 6 7 17 18 19 20 21 22 23
#block 3 : cohesion| nodes= 2 | 7 8 9 10 11 12 13 14 15 16
#block 4 : cohesion| nodes= 5 | 1 2 3 4 5 6 7
#block 5 : cohesion| nodes= 3 | 7 8 11 14
––––––––––––––––––––––––
––––––––––––––––––––––––
–––––––––––
MATSUDA, Noriyuki <Kanji> 松田紀之
- [igraph] cohesive.blocks(),
MATSUDA, Noriyuki <=