martes, 24 de abril de 2012

Grafos con "Igraph"

Continuo con ejemplos de representación de redes sociales con R. Estoy seguro que este tema tan apasionante y divertido hará las delicias de todos los lectores de esta humilde bitácora.

Probaremos el paquete "Igraph" que parece que está de moda.

El paquete para R "Igraph", necesita que se le presenten los datos de la matriz de adyacencia por parejas. Es decir, una matriz de doble entrada convencional (o sociomatriz o tabla de confundido o tabla de concordancia o como la quieran llamar) ha de pasarse al formato de Igraph, como pueden ver esta hoja Excel hace automáticamente un vector con los pares que interaccionan (0 con1, 0 con 2, 2 con 0,...). Es importante tener en cuenta que Igraph empieza a contar los vértices (los sujetos) a partir de 0.


Ahora vamos a mostrar algunos grafos que podemos hacer con esta librería.

Introducimos los datos y vamos a ver diferentes representaciones del mismo grafo. 

g<-graph(c(0,1,0,2,2,0,2,1,3,0,3,1,3,2,4,0,4,1),n=5)

#Básico
png("igraph_basico.png")
plot(g,main="Tal cual")
dev.off()

#Lo representamos como un círculo
png("igraph_circulo.png")
plot(g,layout=layout.circle, main="Círculo")
dev.off()

#Lo representamos con este estilo FR
png("igraph_fruich.png")
plot(g,layout=layout.fruchterman.reingold,main="Fruchterman-Reingold")
dev.off()

#Lo representamos con este estilo "graphopt" ¿?
png("igraph_graphopt.png")
plot(g,layout=layout.graphopt,main="Graphopt")
dev.off()

Es el mismo grafo que aquí: http://spingera.blogspot.com.es/2012/04/redes-sociales-con-r.html solo que sin "pesos". 




No hay comentarios: