# cargamos este paquete library(igraph) ############################################################################## # CREAMOS UNA GRAFICA g2 <- rewire.edges(graph.lattice(100, nei=2, dir=TRUE, mutual=TRUE), p=10/100) # ESTA NO ES UNA GRAFICA AL AZAR, ES UNA QUE ASEMEJA MAS A UNA REAL, ES DE 100 NODOS, # PROBABILIDAD DE QUE OCURRA UN LAZO DE 10/100, DIRIGIDA (dir=TRUE), ACEPTA # LAZOS RECIPROCOS (mutual=TRUE) class(g2) # es un objeto del tipo igraph ############################################################################## # GRAFICAMOS plot(g2, layout=layout.fruchterman.reingold, vertex.label=NA, vertex.size=10, edge.arrow.size=0.3) ############################################################################## # FUENTE # modificado y traducido de # https://assemblingnetwork.wordpress.com/2013/06/10/network-basics-with-r-and-igraph-part-ii-of-iii/ ############################################################################## # 6.3.1 CENTRALIDAD DE GRADO # grado de entrada de cada nodo, es decir cuantos lo nominaron in.deg.g2<-degree(g2,v=V(g2),mode="in") in.deg.g2 # grado de salida, es decir cuantos nomin� el. out.deg.g2<-degree(g2,v=V(g2),mode="out") out.deg.g2 # la suma de ambos all.deg.g2<-degree(g2,v=V(test.graph),mode="all") all.deg.g2 # como se distribuye la conectividad de los nodos o actores hist(all.deg.g2) ############################################################################## # 6.2.1 TRANSITIVIDAD reciprocity(g2) ############################################################################## # 6.2.2 TRANSITIVIDAD transitivity(g2) ############################################################################## # 6.2.3 DENSIDAD # Densidad (No de lazos / posibles lazos) graph.density(g2) ############################################################################## # 6.2.4 DISTANCIA GEODESICA # di�metro de la red, m�xima distancia geod�sica de la red, el camino m�s largo. # la distancia geod�sica es la distancia m�s corta entre dos nodos. # Por ejemplo: 1----->2----->3------>4, la distancia es de 3 # si no hay caminito de un nodo a otro la distacia geod�sica se va a infinito (inf) # una gr�fica esta fuertemente conectada si hay un camino de entre todos los nodos. # en el caso de grafos dirigidos, los caminos que ignoran la direcci�n de las # flechas se les llama semi-caminos. Para la distancia geod�sica de un grafo # dirigido respetamos las flechas, como si fueramos manejando por avenidas de un # solo sentido diameter(g2) # #en la siguiente linea vamos a saber cuales son los nodos que est�n el # el camino del di�metro, es decir, el camino m�s largo dentro de la # red. nodes.diameter<-get.diameter(g2, directed = TRUE); nodes.diameter # �C�mo puedo ver gr�ficamente el di�metro? # defino los atributos de los nodos y lazos V(g2)$color<-"skyblue" # nodos azul cielo V(g2)$size<-7 # nodos de tama�o 7 # cambio de color los nodos del camino del di�metro V(g2)[nodes.diameter]$color<-"darkgreen" V(g2)[nodes.diameter]$size<-10 V(g2)[nodes.diameter]$label.color<-"white" # es decir los nodos en el di�metro deben de ser color verde oscuro y # mas grandes que el resto de los nodos, con una etiqueta blanca en vez de # negra. Esto har� que el di�metro resalte. E(g2)$color<-"grey" # todos los lazos que no est�n en el di�metro ser�n grises E(g2,path=nodes.diameter)$color<-"darkgreen" E(g2,path=nodes.diameter)$width<-2 # los lazos en el di�metro deben de ser tambi�n verde oscuro y un poco m�s # gruesos # graficamos plot.igraph(g2, layout=layout.fruchterman.reingold, vertex.label.cex=.5, edge.arrow.size=.5) ############################################################################## # g2 es un objeto exclusivo de de Igraph, �Qu� pasa si nuestro objeto lo queremos # usar con otro paquete? por ejemplo "sna" que tiene la funci�n "gplot3d" # este paquete te permite hacer esas transformaciones library(intergraph) g22=asNetwork(g2) gplot3d(g22) #############