How can I plot igraph community with defined colors?

时光毁灭记忆、已成空白 提交于 2019-11-27 06:20:38

问题


I can use the code below to generate and draw communities:

 wc <- walktrap.community(subgraph)
 modularity(wc)
 membership(wc)

 layout <-layout.fruchterman.reingold(subgraph)

 plot(wc, subgraph,  layout=layout, vertex.label=NA, vertex.size=5, edge.arrow.size=.2)

However, the colors of the communities are automatic, I have two questions:

  1. Could I custom the community color?
  2. Could I add some text in the community area?

回答1:


Yes, you can do both of those things. Changing the colors of the nodes according to which module they are in (as well as changing the colors of the polygons around the modules) is straightforward using arguments in plot.igraph. Adding text to modules is not so trivial, and the easiest solution is as far as I know is to add text to the plot manually.

library(igraph)

# Generate random graph and community structure
set.seed(23)
g <- sample_gnm(15, 45)
wc <- walktrap.community(g)

# Plot
par(mfrow=c(1,2), mar=rep(1,4))
layout <-layout.fruchterman.reingold(g)
plot(wc, g, layout=layout, vertex.label=NA, vertex.size=5,  edge.arrow.size=.2)

# Change colors of nodes, polygons, and polygon borders
new_cols <- c("white", "red", "black")[membership(wc)]
plot(wc, g, col=new_cols, mark.border="black", mark.col=c("tan", "pink", "lightgray"), 
    layout=layout, vertex.label=NA, vertex.size=5, edge.arrow.size=.2)

# Add labels
text(c(-1.15, 0.8, 0.9), c(0.35, -0.7, 0.8), c("A", "B", "C"))



来源:https://stackoverflow.com/questions/37374355/how-can-i-plot-igraph-community-with-defined-colors

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!