He estado buscando una respuesta a esta pregunta pero no he podido encontrar ninguna mención, así que decidí publicar aquí. Estoy tratando de ver si igraph o cualquier paquete proporciona una forma simple de crear un "gráfico de comunidad" donde cada nodo representa una comunidad en la red y los vínculos representan lazos entre las comunidades. Puedo hacer que el algoritmo de detección de la comunidad funcione bien en igraph, pero no pude encontrar una forma de colapsar los resultados para mostrar simplemente las conexiones entre cada comunidad. Cualquier ayuda sería apreciada.generando un gráfico de comunidad en el igrafo
8
A
Respuesta
19
Puede simplemente usar la función contract.vertices(). Esto contrae grupos de vértices en un solo vértice, esencialmente de la misma manera que lo desea. P.ej.
library(igraph)
## create example graph
g1 <- graph.full(5)
V(g1)$name <- 1:5
g2 <- graph.full(5)
V(g2)$name <- 6:10
g3 <- graph.ring(5)
V(g3)$name <- 11:15
g <- g1 %du% g2 %du% g3 + edge('1', '6') + edge('1', '11')
## Community structure
fc <- fastgreedy.community(g)
## Create community graph, edge weights are the number of edges
cg <- contract.vertices(g, membership(fc))
E(cg)$weight <- 1
cg2 <- simplify(cg, remove.loops=FALSE)
## Plot the community graph
plot(cg2, edge.label=E(cg2)$weight, margin=.5, layout=layout.circle)
+2
Parece que este código ya no funciona ... –
+2
De hecho, lo arreglé. –
Cuestiones relacionadas
- 1. Generando un gráfico de llamadas en R
- 2. Generando un gráfico cúbico aleatorio con probabilidad uniforme (o menos)
- 3. R: igraph, detección de comunidad, método edge.betweenness, contar/enumerar miembros de cada comunidad?
- 4. Generando un gráfico de forma de onda de audio dentro de Python
- 5. Generando un árbol en Excel
- 6. generando un MouseEvent en JavaFX
- 7. Generando un número aleatorio excluyendo el rango
- 8. Generando un rango de números en MySQL
- 9. Hacer un gráfico Gráfico en C#
- 10. Generando un identificador global único en Java
- 11. Generando un código QR en rieles
- 12. Generando una identificación única en C++
- 13. SynEdit: ¿dónde encontrar una comunidad?
- 14. utilizando el UIPageViewController en un guión gráfico
- 15. Generando un archivo binario aleatorio
- 16. ¿Cómo combino el gráfico de un ListPlot con el gráfico de un Plot?
- 17. Generando regiones en un mapa 2D
- 18. ¿Cuál es el estado actual de la comunidad PHP?
- 19. ¿Existe un complemento IntelliJ Python para la edición de comunidad?
- 20. OCR'ing un gráfico, tabla o gráfico para el cumplimiento 508
- 21. ¿Dónde está la comunidad de FPC/Lazarus?
- 22. Asp.Net MVC - Directorio de complementos, comunidad, etc.
- 23. Generando vectores en MATLAB
- 24. Extensiones de comunidad SQLCLR o biblioteca común
- 25. lovdbyless VS Motor de comunidad ... ¿cuál es el mejor?
- 26. Generando un Contexto de Caras manualmente
- 27. Generando las particiones de un número
- 28. generando licenses.licx
- 29. Generando singletons
- 30. Generando un sudoku de una dificultad deseada?
Sí, esto se puede hacer con igraph, pero realmente no se ha proporcionado nada reproducible. Aquí hay una publicación de blog que hice en igraph [(LINK1)] (http://trinkerrstuff.wordpress.com/2012/06/29/igraph-and-structured-text-exploration/) y [(LINK 2)] (http : //trinkerrstuff.wordpress.com/2012/06/30/igraph-and-sna-an-amateurs-dabbling/) Sí autopromoción, pero encaja :) El sitio web para igraph es muy bueno, con muchos ejemplos también. De nuevo, podemos ayudar aún más con un conjunto de datos de ejemplo. –
+1 a datos de ejemplo. – TARehman