Skip to content

Instantly share code, notes, and snippets.

@ngopal
Last active March 1, 2016 03:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ngopal/9fb5701d87f5fce5295e to your computer and use it in GitHub Desktop.
Save ngopal/9fb5701d87f5fce5295e to your computer and use it in GitHub Desktop.
library(igraph)
library(colorBreweR)
g <- watts.strogatz.game(1, 100, 5, 0.05)
V(g)$degree <- degree(g)
V(g)$betweenness <- betweenness(g)
V(g)$closeness <- closeness(g)
V(g)$eigen <- eigen_centrality(g)$vector
V(g)$page <- page.rank(g)$vector
testScale <- colorRampPalette((brewer.pal(9, "Reds")))
assignColor <- function(maxVal, minVal, valArray) {
indexes <- valArray - minVal + 1
return(testScale(length(valArray))[floor(rank(valArray))])
}
par(mfrow=c(2,2),
oma = c(5,4,0,0) + 0.1,
mar = c(0,0,1,1) + 0.1)
set.seed(1218430)
pg1 <- plot(g, vertex.size=10, vertex.label=NA,
vertex.color=assignColor(max(V(g)$degree), min(V(g)$degree), V(g)$degree),
main="Degree Centrality")
set.seed(1218430)
pg2 <- plot(g, vertex.size=10, vertex.label=NA,
vertex.color=assignColor(max(V(g)$betweenness), min(V(g)$betweenness), V(g)$betweenness),
main="Betweenness Centrality")
set.seed(1218430)
pg3 <- plot(g, vertex.size=10, vertex.label=NA,
vertex.color=assignColor(max(V(g)$closeness), min(V(g)$closeness), V(g)$closeness),
main="Closeness Centrality")
set.seed(1218430)
pg4 <- plot(g, vertex.size=10, vertex.label=NA,
vertex.color=assignColor(max(V(g)$eigen), min(V(g)$eigen), V(g)$eigen),
main="Eigenvactor Centrality")
dev.off()
centrality_table <- as.table(cbind(V(g)$degree,
V(g)$betweenness,
V(g)$closeness,
V(g)$eigen))
colnames(centrality_table) <- c("degree","between","closeness","eigen")
parcoord(centrality_table)
centrality_table_pct <- matrix(NA,100,4)
centrality_table_pct[,1] <- centrality_table[,1]/max(centrality_table[,1])
centrality_table_pct[,2] <- centrality_table[,2]/max(centrality_table[,2])
centrality_table_pct[,3] <- centrality_table[,3]/max(centrality_table[,3])
centrality_table_pct[,4] <- centrality_table[,4]/max(centrality_table[,4])
avg_centrality <- apply(centrality_table_pct, FUN=mean, MARGIN=c(1))
par(mfrow=c(1,2),
oma = c(5,4,0,0) + 0.1,
mar = c(0,0,1,1) + 0.1)
parcoord(centrality_table)
set.seed(1218430)
pg1 <- plot(g, vertex.size=10, vertex.label=NA,
vertex.color=assignColor(max(V(g)$degree), min(V(g)$degree), V(g)$degree),
main="Degree Centrality")
dev.off()
par(mfrow=c(1,2),
oma = c(5,4,0,0) + 0.1,
mar = c(0,0,1,1) + 0.1)
parcoord(centrality_table_pct, col=assignColor(max(avg_centrality), min(avg_centrality), avg_centrality))
set.seed(1218430)
pg1 <- plot(g, vertex.size=10, vertex.label=NA,
vertex.color=assignColor(max(avg_centrality), min(avg_centrality), avg_centrality),
main="Avg Centrality")
dev.off()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment