#### limpio mi ambiente de trabajo
rm(list = ls())
#### http://www.shizukalab.com/toolkits/sna/bipartite
# 5 individuos que pertenecen a 5 grupos
A=c(1,1,0,0)
B=c(1,0,1,0)
C=c(1,0,1,0)
D=c(0,1,0,1)
E=c(0,0,1,1)
bm=matrix(c(A,B,C,D,E),nrow=5,byrow=TRUE)
dimnames(bm)=list(c("A","B","C","D","E"),c("Groupo1","Groupo2","Groupo3","Groupo4"))
bm
library(igraph)
bg=graph.incidence(bm)
V(bg)$type
V(bg)$name
shapes=c("circle","circle","circle","circle","circle","square","square","square","square")
# los primeros 5 nodos son circulos y el resto cuadrados.
labeldistances=c(0,0,0,0,0,0.6,0.6,0.6,0.6)
#la etiqueta de los primeros 5 nodos estar?? dentro del nodo y la del resto afuera
plot(bg,vertex.shape=shapes,vertex.label.degree=-pi/2,
vertex.label.dist=labeldistances,vertex.color=V(bg)$type)
#The vertex.label.degree= este argumento nos dice donde va la etiqueta en radianes.
# Que tal si queremos que el actor D también pertenezca al Grupo 1?
bg <- add.edges(bg, c("D","Groupo1"))
plot(bg,vertex.shape=shapes,vertex.label.degree=-pi/2,
vertex.label.dist=labeldistances,vertex.color=V(bg)$type,
layout=layout.fruchterman.reingold)