You are on page 1of 36

Anlisis de grafos usando R e igraph

Beatriz Valdez
16 de marzo de 2016

Introduccin: Estamos realizando anlisis de redes en el contexto de la planificacin estratgica. Entre los
softwares que hemos indicado para hacer este tipo de anlisis est R. R posee una variedad de paquetes
que ponen a nuestro alcance diversas funciones para facilitarnos esta tarea. En este captulo continuaremos
sealando algunas de las funciones y facilidades que nos ofrece el paquete igraph. Un paquete que en nuestra
opinin ha sido y es sub-utilizado a pesar de que constituye un recurso bastate completo para esta modalidad
de anlisis.
Ofrecemos algunos ejemplos sobre cmo crear una red a partir de diferentes tipos de datos, y los posibles
vnculos que podemos establecer segn cada tipo de dato. Preste atencin a la forma de crear la red y en
qu forma creamos nuestros vnculos. Experimente con su propia data. No olvide tomar nota sobre aquellos
aspectos que le presenten mayor dificultad.
Note que se le ofrecen distintas posibilidades en los diferentes ejemplos con el objeto de que pueda tener
diferentes opciones al momento de analizar la data que debe entregar como parte del proceso de evaluacin

Anlisis de casos
Subo tanto el paquete como la data y la data que necesito:
require(igraph)

Primer ejemplo. Zona de habitacin deseada


Data:
zona <- read.csv("C:/Users/Beatriz/Downloads/zona.csv",
stringsAsFactors=FALSE)
Lo primero que hago es revisar mi data para asegurarme que no existen anomalias o necesidad de pre-procesar
la data:
str(zona)
## 'data.frame':
## $ id
: chr
## $ vive : chr
## $ aspira: chr

1646 obs. of 3 variables:


"c12" "t106" "c375" "t151" ...
"23 de enero" "agua salud" "alta florida" "altamira" ...
"este" "la lagunita" "la florida" "alameda" ...

Tengo tres variable y 1646 casos. Exploro la data:

sapply(zona[,2:3], function(x) table(x))


## $vive
## x
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##

23 de enero
1
altamira
30
altos mirandinos
1
av urdaneta
4
av. libertador
2
av. sucre
1
baruta
21
bello monte
47
california
1
campo claro
2
caracas
3
catia
21
centro
3
chapellin
1
chulavista
8
country club
1
el bosque
7
el cigarral
4
el llanito
2
el paraiso
40
el valle
22
gavilan
1
guayabitos
1
la alameda
1
la bonita

agua salud
1
alto hatillo
8
andres bello
2
av. baralt
2
av. panteon
1
av. victoria
3
bella vista
1
boleita
5
campitos
1
capitolio
3
caricuao
16
catia
1
chacaito
15
charallave
6
coche
3
cuairimares
1
el cafetal
29
el hatillo
120
el marquez
19
el rosal
12
fuerzas armadas
5
guarenas
14
interior del pais
6
la bandera
2
la boyera
2

alta florida
1
alto prado
10
antimano
2
av. la victoria
3
av. roosevelt
1
av.solano
1
bellas artes
9
cagua
1
campo alegre
5
capuchino
1
carrizales
1
caurimare
5
chacao
91
chuao
12
concresa
3
cumbres del curumo
11
el centro
2
el junquito
5
el palmar
1
el silencio
2
gato negro
1
guatire
12
jorge felix catia
1
la baralt
1
la california

##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##

2
la candelaria
23
la floresta
1
la guairita
3
la paz
3
la union
17
las acacias
16
las esmeralda
1
las minas
5
lomas del avila
10
los chaguaramos
11
los dos caminos
22
los palos grande
41
los samanes
17
los valles del tuy
2
manzanare
2
montalban
22
nuevo circo
1
palo verde
11
parque central
2
piedra azul
1
plaza sucre
1
prados del este
19
sabana grande
23
san bernandino
10
san luis
3
santa eduvigis
2
santa monica

50
la carlota
5
la florida
15
la lagunita
73
la tahona
15
la urbina
6
las adjuntas
7
las lomas del avila
1
las palmas
6
los campitos
1
los chorros
15
los guayabitos
5
los rosales
7
los simbolos
3
macaracuay
6
mariche
1
monte cristo
2
oeste
1
parque caiza
1
parroquia san juan
1
pinto salina
1
plaza venezuela
5
propatria
7
san agustin
2
san jose
1
san martin
6
santa fe
28
santa paula
3

28
la castellana
37
la guaira
15
la pastora
2
la trinidad
17
la victoria
1
las delicias
1
las mercedes
31
lo chorros
1
los caobos
6
los cortijos
4
los naranjos
47
los ruices
12
los teques
17
macarao
1
miraflores
2
ns/nr
50
oritopo
1
parque carabobo
2
petare
14
plaza suarez
1
prados de maria
4
quinta crespo
4
san antonio
18
san juan
1
san roman
2
santa ines
4
santa rosa

##
30
##
santa rosalia
##
4
## terrazas del club hipico
##
7
##
valle
##
1
##
valles del tuy
##
3
##
## $aspira
## x
##
campo claro
##
1
##
alto hatillo
##
3
##
bellas artes
##
2
##
campo alegre
##
27
##
chacaito
##
4
##
chulavista
##
2
##
cumbres de curumo
##
11
##
el centro
##
2
##
el paraiso
##
7
##
guarenas
##
6
##
la alta florida
##
1
##
la candelaria
##
4
##
la colonia tovar
##
2
##
la guaira
##
2
##
la selva
##
2
##
la union
##
2
##
las mercedes
##
42
##
los chorros
##
16
##
los naranjos
##
48
##
los samanes
##
21
##
manzanal
##
3

4
sebucan
7
trinidad
1
valle abajo
3
vista alegre
2

8
terrazas del avila
10
urb. miranda
1
valle arriba
17

alameda
2
alto prado
2
bello monte
26
caurimare
1
chacao
250
country club
13
el bosque
3
el hatillo
198
el rosal
21
interior del pais
2
la boyera
17
la carlota
4
la floresta
1
la guairita
2
la tahona
22
las acacias
1
lomas del avila
1
los cortijos
3
los palos grande
62
los teques
8
manzanares
1

altamira
104
baruta
11
boleita
3
cerro verde
5
chuao
2
cualquiera
3
el cafetal
11
el marquez
1
este
169
la alameda
3
la california
8
la castellana
132
la florida
9
la lagunita
92
la trinidad
20
las adjuntas
4
los chaguaramos
12
los dos caminos
12
los ruices
1
macaracuay
4
miraflores
2

##
##
##
##
##
##
##
##
##
##
##
##
##
##

monte cristo
1
ns/nr
52
san antonio
3
santa fe
16
santa rosa
4
sur este
1
valle arriba
25

ninguna
noreste
14
2
plaza venezuela
prados del este
5
18
san bernandino
san roman
3
4
santa monica
santa paula
12
1
sebucan
simbolo
3
2
terrazas del avila terrazas del club hipico
5
4
valle arriba
vista alegre
13
2

Creo una red que me indique donde vive cada persona que aspira vivir donde: Es decir, la relacin entre los
nodos la estrablezco segn si una persona que vive en una zona dada le gustara vivir otra/la misma zona:
V(z) > V(z). Podra tratar esta red como una red de un modo. Sin embargo, la voy a tratar como si se
tratara de una red de dos modos: unos vertices me indican la zona en la que vive el entrevistado y otro la
zona en la que aspira a vivir: V(vive) > V(aspira a vivir). La red de dos modos se crean a partir de una
matriz de incidencia:
# creo la matriz de incidencia
vive <-matrix(c(zona$vive, zona$aspira), ncol=2)
head.matrix(vive)
##
##
##
##
##
##
##

[1,]
[2,]
[3,]
[4,]
[5,]
[6,]

[,1]
"23 de enero"
"agua salud"
"alta florida"
"altamira"
"altamira"
"altamira"

[,2]
"este"
"la lagunita"
"la florida"
"alameda"
"altamira"
"altamira"

# creo el grafo
g<-graph_from_edgelist(vive)
# elimino posibles loops
g <- simplify(g)

Estructura del grafo


Creo un para de funciones para evaluar la estructura del grafo. Crear las funciones es opcional, pero me
permite hacer el procedimiento rpidamente y aplicarlos en los otros ejemplos sin tener que escribir todo esos
cdigos de nuevo:
# funcion para obtener panoramica sobre la estructura de la red
function(grafo){
wtc <- cluster_walktrap(grafo)
g<-data.frame(
Indicadores =c(
"nodos",
"aristas",
5

"densidad",
"diametro",
"long.med.cam",
"grado medio",
"modularidad",
"coefic.cluster"),
valor=c(vcount(grafo),
ecount(grafo),
round(graph.density(grafo), 2),
diameter(grafo),
round(average.path.length(grafo),2),
round(mean(degree(grafo)),2),
round(modularity(grafo,
membership(wtc)),2)
round(transitivity(grafo),2)
))
return(g)
}
# funcion para determinar numero maximo de relaciones
function(grafo){
r<-data.frame(relaciones =c(
"potenciales", "presentes",
"% presentes"),
valor =c((vcount(grafo)*(vcount(grafo)-1))/2,
ecount(grafo),
round(graph.density(grafo)*100,2)
)
)
return(r)
estructura(g)
##
##
##
##
##
##
##
##
##

Indicadores valor
1
nodos 183.00
2
aristas 848.00
3
densidad
0.03
4
diametro
7.00
5
long.med.cam
2.75
6
grado medio
9.27
7
modularidad
0.11
8 coefic.cluster
0.24

relaciones(g)
##
relaciones
valor
## 1 potenciales 16653.00
## 2
presentes
848.00
## 3 % presentes
2.55
El grafo es poco denso, a pesar de que tiene 145 nodos y 820 aristas. Para un grafo de este tamao, y si
todas las posibles relaciones estuvieran presentes, se esperaran casi 10.500 relaciones, en este grafo slo
6

se encuentra presentes el 4% de esas posibles relaciones. Los nodos poseen en promedio 11 vnculos y
existen aproximadamente tres grados de separacin entre ellos. Finalmente, el grafo muestra una tendencia a
conformar algunos clusters:
par(bg="gray15",mar=c(1,1,1,1))
plot(g,vertex.label=NA, asp=FALSE,
vertex.size =degree(g)/max(degree(g)),
vertex.color= "gray90",
vertex.frame.color= "gray90",
edge.color="gray55",
edge.arrow.size=0.6)

La visualizacion de la estructura del grafo me sugiere, por ejemplo, que algunas pocas zonas de Caracas,
posiblemente no ms de cinco, son altamente valoradas por quienes contestaron la pregunta. Este compor7

tamiento me explicara tanto la densidad del grafo, como los pocos clusters que se detectan en el anlisis de
los indicadores
Visualizacin
Visualizo el grafo. Para ello preciso alguno de los atributos que deseo que estn presentesen en la visualizacin,
como son el tamao de los nodos y sus etiquetas, el tamao de las flechas y el color, as como el layout:
plot(g,layout=layout.auto, vertex.size=3,
edge.width= 0.4, vertex.label.cex =0.78,
edge.arrow.size=0.4, asp=FALSE,
edge.color="black" )

san jose parque caiza las delicias


jorge felix catia
california
bella vista
san agustin

carrizales catia

mariche
chapellin

macarao
noreste
la pastora
campo claro
cualquiera
centro

pinto salina

parque carabobo
parque central

la selva
valles del tuy

la urbina
caracas

la bandera

capitolio

la floresta

petare
alameda
parroquia san juan

el centro

andres bello

oeste

av urdaneta
av. libertador
lomas del avila
quinta crespo

cagua

oritopo

santa rosalia
av. la victoria

las palmas
el junquito
los caobos
ninguna
guatire catia

la paz

prados de maria

trinidad
coche

palo verde chacao


terrazas del avila
caricuao
los campitos
concresa
caurimarepropatria
prados del este
santa eduvigis
el bosque
las acaciaslas minas
la tahona
av. victoria
ns/nr
la
union
simbolo
la guaira
chacaito
los simbolos
este
sabana grande
san antonio
san martin boleita
santa
rosa
guarenas
vista alegre
av. roosevelt
la trinidad
santa santa
fe monica
altamira
interior del pais
la guairita los teques
los dos caminos
capuchino
el hatillo
el rosalel paraiso
fuerzas armadas
la candelaria
bellas artes
las mercedes
los cortijos
la lagunita
chuao los samanes
la alameda
la castellana
el valle
country
club
san
juan
valle
los palos grandebello monte
la california baruta
alto hatillomacaracuay
sebucan
valle
cumbres del curumo
losarriba
chorros
los
chaguaramos
los guayabitos
la florida campo alegreel cafetal
san roman
gavilan
la
boyera
el marquez
plaza venezuela
los naranjos
montalban
cumbres de curumo
el silencio
los rosales
los ruices
alto prado
las adjuntas
las esmeralda
terrazas del club hipicosan bernandino
monte cristo santa paula
la carlota
el cigarral
charallave
agua salud

gato negro
el palmar
23 de enero

el llanito
av. baralt
campitos

cerro verde
chulavista

miraflores

sur este
la bonita

santa ines

valle arriba

plaza suarez
antimano
urb. miranda

la baralt

manzanal
los valles del tuy

lo chorros
plaza sucre

san luis

valle abajo

guayabitos
nuevo circo
manzanare

av.solano
cuairimares
la victoria

av. sucre
la colonia tovar

la alta florida
altos mirandinos

alta florida
manzanares
campo claro

piedra azul

las lomas del avila


av. panteon

Puedo hacer algunos arreglos adicionales, por ejemplo abreviar los nombres de los lugares. Este procedimiento
es til cuando tenemos etiquetas de nodos muy amplias. Veamos cmo haramos esto:
zona$vive2 <-abbreviate(zona$vive)
zona$aspira2 <-abbreviate(zona$aspira)
vive2 <-matrix(c(zona$vive2, zona$aspira2), ncol=2)
g2<-graph_from_edgelist(vive2)
g2 <- simplify(g2)
Visualizo nuevamente el grafo
ml <- layout_with_graphopt(g2, niter = 50000,
mass = 60 )
plot(g2,layout=ml, vertex.size=3,
edge.width= 0.4, vertex.label.cex =0.82,
edge.arrow.size=0.4, asp=FALSE,
edge.color="black" )

plzsc
cmpt

crmrs
av.sl

lsdl

crrz

snag
prqcz

lvct

almd

prqcn

jrfc

lpaz

frza

petr

trda

chrl

antm

gtng

23de

trnd

lscb

gutr

plzsr
mnznl

chua prde

lschr
tdch
chct
bart
lcst
lgur
grns
chac
snti
lthn lstq
mntl
sbcn
cati
sntm lspg snbr
ltrn
elht
elpr
ns/n
lsgy
snan
qntc
lbyr
llgn altm
elcf
nngn
lsmr elrs
elvl este
lclf lflrd
bllm
lsad
carc
sntf
lsnr
lsrc
cmpa
avur
plvr
lsdc
santrs
vlla vllar
a.lv
lcnd
blla
lschg
prqcr
elmr
cmdc elbs
chlv
altp
prpt
coch
alth
crcs
lalm
lsmn
lclt
snrm
andb
mntc
vllab

mnzn

lsrs

prsj

altmr

lgrt

lcrl

nvcr

snte
sntr

eljn

cpch
mcrc

snmr
mnznr

av.b
indp

macr

crrv
lssmb

elcg

ur.m

smbl

lscr
snls

gybt
altf

lbnd

vsta
oest

lses

av.v

sbng

lsac

plzv

lslv

lssmn

lunn

snjn

lurb

lspl

lssm

cntc

sntrsl
carmr

prdm

vldt

lvdt

bolt

cmpc

lflrs

lscm
lpst
elcn

lmda
cntr

clqr

gvln
av.l

cncr

mrfl

ortp

snjs

elsl

cptl

elpl

lbnt

chpl

mrch

bllv

clfr
nrst

vall

sntp
elll

pnts

av.sc

agsl
lbrl
cagu

llda

av.r
altsm

lchr
av.p

pdra

crmr

sres

lalf

La zonas con mayor nmero de conexiones se han ubicado hacia el centro del grafo. Inspecciono qu zonas
reciben mayor nmero de menciones. Observese que he escogido un color para los vnculos que los hace casi
imperceptibles, esto con el objeto de visualizar mejor los nodos centrales:
plot(g2,layout=ml, vertex.size=degree(g2, mode="in")/15,
edge.width= 0.4, vertex.label.cex =0.82,
edge.arrow.size=0.4, asp=FALSE,
edge.color="ghostwhite" )

10

plzsc
cmpt

crmrs
av.sl

lsdl

crrz

snag
prqcz

lvct

prqcn

lpaz

frza

trda

chrl

carmr

lslv
antm

gtng

23de

trnd

lscb

gutr

plzsr
mnznl

lschr

tdch
chct
bart
lcst
lgur
grns
chac
snti
lthn lstq
mntl
sbcn
cati
sntm lspg snbr
ltrn
elht
elpr
ns/n
lsgy
snan
qntc
lbyr
llgn altm
elcf
nngn
lsmr elrs
elvl este
lclf lflrd
bllm
lsad
carc
sntf
lsnr
lsrc
cmpa
avur
plvr
lsdc
santrs
vlla vllar
a.lv
lcnd
blla
lschg
prqcr
elmr
cmdc elbs
chlv
altp
prpt
coch
alth
crcs
lalm
lsmn
lclt
snrm
andb
mntc
vllab

mnzn

lsrs

lsac

prsj

altmr

lgrt

lcrl

nvcr

snte
sntr

eljn

cpch
mcrc

snmr
mnznr

av.b
indp

macr

crrv
lssmb

elcg

ur.m

smbl

lscr
snls

gybt
altf

lbnd

vsta
oest

lses

av.v

sbng
chua prde

plzv

vldt

lssmn

lunn

snjn

lurb

lspl

lssm

cntc

sntrsl

prdm

lflrs

lvdt

bolt

cmpc
clqr

lscm
lpst
elcn

lmda
petr

cntr
mrch

gvln
av.l

cncr

mrfl

ortp

snjs

elsl

cptl

elpl

lbnt

almd

chpl

jrfc

bllv

clfr
nrst

vall

sntp
elll

pnts

av.sc

agsl
lbrl
cagu

llda

av.r
altsm

lchr
av.p

pdra

crmr

sres

lalf

Las cinco zonas con mayor numero de menciones como deseables para vivir son, en orden decreciente Chacao,
el Este, El Hatillo, La Castellana, Altamira y no sabe/no responde.Puedo obtener un subgrfico con estas
reas:
sg1<-induced_subgraph(g2, c("chac", "este", "elht",
"lcst", "altm"))
Visualizo
plot(sg1,layout=layout.auto, vertex.size=degree(sg1,
edge.width= 0.4, vertex.label.cex =0.82,
edge.arrow.size=0.5, asp=FALSE,
edge.color="gray80" )

11

mode

altm

lcst

chac

elht

este

Todas las personas que dijeron habitar en estas zonas desean vivir en el Este o en Altamira, preferiblemente.
Ntese que cuando tomamos el grafo completo, la zona ms deseada es Chacao. Pero cuando tomo el grupo
de zonas ms deseada, la historia es algo distinta. Quiene viven en estas reas desean irse ms hacia el ste.
Personas quee dijeron vivir en Chacao desearon vivir en altamira, la Castellana.
Puedo visualizar la mitad del grafo, un tercio de l, etc. Este procedimiento es til cuando tengo grafos
demasiado grandes que podran comprometer la capacidad de memoria de mi computadora, o dificultar la
visualizacin e interpretacin de la red:
sg2<-induced_subgraph(g2, 1:73)
Visualizo

12

lfr <- layout_with_fr(sg2, niter=1000)


plot(sg2,layout=lfr, vertex.size=degree(sg2,
edge.width= 0.4, vertex.label.cex =0.82,
edge.arrow.size=0.5, asp=FALSE,
edge.color="gray80" )

mode="in")/1

cpch
23de
altf

cagu

antm

avur
av.b

av.p
lsad

av.sl
andb

carc
lcnd

nngn

mntc

lflrd

lsmr
este

lgur
av.l

lstq

bllm
cati

a.lv

ns/n llgn
elpr

blla
lcst elcf

lschr

ltrn

av.v

cmpa

sntm
chac

lspg
elht

agsl

av.sc

lschg
altp

lsnr elrs

bolt
altsm

cmdc
altm

vlla
bllv

lsdc
lthn

prde

grns

altmr

carmr

elmr

bart

sntr

clfr
trda
lssm
crcs

mnznl

crrz

cntc
alth

almd
cptl
cmpc
av.r

cmpt

crmr

Puedo tambin visualizar el grafo completo, borrando tanto los nodos como los vnculos que tienen un nmero
pequeo de relaciones, por ejemplo 5. Aqu es til tomar en cuenta el indicador de grado de la red y ver el
mnimo nmero de conexiones, as como el mximo nmero, para decidir a partir de qu nmero de conexiones
sera conveniente borrar nodos:
g3 <- delete.vertices(g2,
V(g2)[degree(g2)<=5])

13

Visualizo nuevamente el grafo


lfr <- layout_with_fr(g3, niter=10000)
plot(g3,layout=lfr, vertex.size=degree(g3)/15,
edge.width= 0.4, vertex.label.cex =0.82,
edge.arrow.size=0.5, asp=FALSE,
edge.color="gray80" )

mcrc
chlv
elbs
blla
altp

snrm

alth
elmr
cmpa

snbr

vlla

cntc
mntl

chct
vllar

cmdc

lschg

lsac
lflrd

elcf
chua

lsnr

sntf
lcnd
lsdc

lbyr

lsrc

santrs

lschr

tdch

elht

ns/n
chac

altmr
trda

sntm
bllm

este
lspg

lthn

lsmr

elrs

llgn
lssm

ltrn
sbng

lcst

carc

plvr

altm

elpr
lclf

grns

bart

lunn

prpt

prde
snan

nngn

elvl

lssmn

lstq
cati
gutr

lgur
bolt

sbcn
lmda
plzv
lsad

Podra haber hecho lo mismo con el grafo con etiquetas completas. Pero adems, puedo aclarar los vnculos,
colorear y escalar los nodos segn el grado:

14

g4 <- delete.vertices(g,
V(g)[degree(g)<=5])
Este procedimiento mejora el comportamiento de algunos indicadores:
estructura(g4)
##
##
##
##
##
##
##
##
##

Indicadores valor
1
nodos 69.00
2
aristas 606.00
3
densidad
0.13
4
diametro
6.00
5
long.med.cam
2.22
6
grado medio 17.57
7
modularidad
0.09
8 coefic.cluster
0.39

relaciones(g4)
##
relaciones
valor
## 1 potenciales 2346.00
## 2
presentes 606.00
## 3 % presentes
12.92
Compara los resultados anteriores con la informacin que obtuve inicialmente. Visualizo:
minC <- rep(-Inf, vcount(g4))
maxC <- rep(Inf, vcount(g4))
minC[1] <- maxC[1] <- 0
co <- layout_with_fr(g4, niter=20000, minx=minC,
maxx=maxC,
miny=minC, maxy=maxC)
colores <-topo.colors(max(degree(g4)))
plot(g4,layout=co, vertex.size=degree(g4)/15,
edge.width= 0.4,
edge.arrow.size=0.5, asp=FALSE,
edge.color="gray92",
vertex.label.cex=degree(g4)/35,
vertex.label.font=round(degree(g4)/18),
vertex.color= colores,
vertex.frame.color=colores
)

15

cumbres del curumo

alto hatillo
cumbres de curumo

la union

sabana grande
alto prado

chuao

los samanes
las acacias

montalban
los ruices
terrazas del club hipico

country club

el marquez

los chorros

chulavista

baruta

sebucan

campo alegre
el paraiso

la tahona

la trinidad
el bosque

la candelaria

terrazas del avila

el cafetal

la lagunita

plaza venezuela

el valle

la boyera

el hatillo
san bernandino

la castellana
chacao
este
los naranjos
altamira

boleita

macaracuay

valle arriba

los palos grande


la florida

santa fe

chacaito

prados del este

bellas artes

los teques

las mercedes

ns/nr

los chaguaramos

lomas del avila

bello monte

santa monica

la california

guarenas

el rosal
los dos caminos
la guaira

catia

guatire

san antonio
santa rosa

las adjuntas

valle arriba

caricuao

palo verde

ninguna

san roman

propatria

Notse que he modificado los valores por defectos del layout. Esto con el fin de mejorar el dibujado del
grafo. Aqu es til que experimente con esos valores. No deje de consultar la vieta del paquete igraph para
obtener mayor informacin sobre los criterios para adelantar este procedimiento. Adicionalmente, he creado
una paleta de colores que me permitir darle color a los nodos de acuerdo con el grado e igualmente he
manipulado el tipo de fuente de acuerdo con este indicador para que me ayude a identificar la distribucin
del grado o de cualesquiera de lo indicadores analizados, con el cambio de fuente.
Voy a visualizar las zonas que reciben el mayor nmero de menciones:
plot(g4,layout=co, vertex.size=degree(g4, mode = "in")/15,
edge.width= 0.4,
edge.arrow.size=0.5, asp=FALSE,
edge.color="gray92",
vertex.label.cex=degree(g4, mode = "in")/30,
vertex.label.font=round(degree(g4, mode = "in")/15),
16

vertex.color= colores,
vertex.frame.color=colores)

cumbres del curumo


alto hatillo

cumbres de curumo

sabana grande
chuao

los samanes

montalban
terrazas del club hipico

country club
los chorros

baruta

sebucan

campo alegre
la tahona

la trinidad

el paraiso

el bosque

terrazas del avila

el cafetal

el hatillo

la lagunita
plaza venezuela

el valle

macaracuay

valle arriba

los palos grande

la boyera

la castellanachacao
este

la florida

los naranjos

altamira

boleita

santa fe

chacaito

prados del este


bellas artes

los teques

ns/nr

las mercedes

los chaguaramos

bello monte
santa monica
la california

guarenas

el rosal
los dos caminos

catia

guatire
san antonio

santa rosa

valle arriba

caricuao
palo verde

ninguna

san roman

propatria

Exploro ahora en qu zonas tiende a vivir la gente que respondi a la pregunta sobre zona preferida para
vivir:
plot(g4,layout=co, vertex.size=degree(g4,
mode = "out")/5,
edge.width= 0.4,
vertex.label.cex =degree(g4, mode = "out")/30,
vertex.label.font=round(degree(g4, mode = "out")/15),
edge.arrow.size=0.5, asp=FALSE,
edge.color="gray92",

17

vertex.color= colores,
vertex.frame.color=colores)

cumbres del curumo

alto hatillo

cumbres de curumo

la union

sabana grande
alto prado

chuao

los samanes

las acacias

montalban

los ruices
terrazas del club hipico

el marquez

los chorros

chulavista

baruta

sebucan

campo alegre

la tahona
la trinidad

el paraiso

el bosque

la candelaria

terrazas del avila

el cafetal

el hatillo
la lagunita

macaracuay

plaza venezuela

valle arriba

el valle

los palos grande

la boyera

san bernandino

chacao

la castellana

este

los naranjos

la florida

altamira

santa fe

boleita

chacaito

prados del este


bellas artes

los teques

ns/nr

las mercedes

los chaguaramos

lomas del avila

bello monte
santa monica

la california

guarenas

el rosal

los dos caminos


la guaira

catia

guatire

san antonio

valle arriba

santa rosa
las adjuntas

caricuao

ninguna

palo verde

san roman

propatria

Exploro ahora el grafo de acuerdo con otros indicadores. Dado que usted ha investigado sobre lo que cada
uno de ellos nos informa, dejaremos que aplique esos conocimientos e interprete las visualizaciones:
cercana
plot(g4,layout=co, vertex.size=closeness(g4)+3,
edge.width= 0.4,
vertex.label.cex =closeness(g4) + .767,
vertex.label.font=round(closeness(g4))+1,
edge.arrow.size=0.5, asp=FALSE,
edge.color="gray92",
18

vertex.color= colores,
vertex.frame.color=colores)

cumbres del curumo

alto hatillo

cumbres de curumo

la union

sabana grande

alto prado
chuao

los samanes

las acacias

montalban

los ruices

terrazas del club hipico

country club
el marquez

los chorros

chulavista

baruta

sebucan

campo alegre
el paraiso

la tahona

la trinidad

el bosque

la candelaria

terrazas del avila


el cafetal
el hatillo
macaracuay

la lagunita

plaza venezuela

valle arriba

el valle

los palos grande

la boyera
los naranjos

san bernandino

chacaoeste

la castellana
altamira

boleita

los teques

la florida
chacaito

santa fe

prados del este

bellas artes
ns/nr

las mercedes
lomas del avila

los chaguaramos

bello monte

santa monica

la california

guarenas

el rosal
los dos caminos

la guaira

catia

guatire
san antonio
santa rosa

las adjuntas

valle arriba

caricuao
palo verde

ninguna
san roman

propatria

lejania
plot(g4,layout=co, vertex.size=eccentricity(g4),
edge.width= 0.4,
vertex.label.cex =eccentricity(g4)/2,
vertex.label.font=round(eccentricity(g4)),
edge.arrow.size=0.5, asp=FALSE,
edge.color="gray92",
vertex.color= colores,
vertex.frame.color=colores)

19

cumbres del curumo


alto hatillo

cumbres de curumo
sabana grande
alto prado
chuao

la union

los samanes
terrazas del club hipico

montalban

los ruices
los chorros

las acacias
country club
el marquez
chulavista

baruta

sebucan

campo alegre

el paraisola tahona la trinidad

terrazas del avila

la candelaria

el bosque

el cafetal

plaza venezuela

el hatillo

la lagunita

el valle

san bernandino

chacao
la castellana
este
la florida
los naranjos
altamira
santa fe

boleita
los teques

macaracuay

valle arriba

los palos grande

la boyera

chacaito

prados del este


las mercedes

lomas del avila

ns/nr

bello monte
la california

los chaguaramos
santa monica

el rosal

guarenas

los dos caminos

la guaira
catia

las adjuntas

guatire

san antonio
santa rosa

valle arriba
caricuao
palo verde

ninguna
san roman

propatria

intermediacion
plot(g4,layout=co, vertex.size=betweenness(g4)/100,
edge.width= 0.4,
vertex.label.cex =betweenness(g4)/180,
vertex.label.font=round(betweenness(g4)/120),
edge.arrow.size=0.5, asp=FALSE,
edge.color="gray92",
vertex.color= colores,
vertex.frame.color=colores)

20

bellas artes

cumbres del curumo


cumbres de curumo

sabana grande

alto prado

chuao

los samanes

montalban
el marquez

los chorros
baruta

campo alegre

la tahona

la trinidad

el paraiso

el cafetal

plaza venezuela

el hatillo
la lagunita

el valle

la boyera

valle arriba

los palos grande

la castellana
los naranjos

altamira

boleita

san bernandino

este

la florida

santa fe

prados del este


los teques

las mercedes

ns/nr

los chaguaramos

bello monte
santa monica

la california

guarenas

el rosal
los dos caminos

catia

guatire
san antonio

valle arriba

caricuao
palo verde

ninguna

propatria

segundo ejemplo. Vicepresidentes de Venezuela


Tengo dos marcos de datos con presidentes y vice presidentes de venezuela. No he verificado la precisin de
esta data. La usar con fines didcticos. Examinar que tipo de relaciones puedo explorar
vices <- read.csv("~/analisisDatos/redes/vicepresidentes.csv")
presidentes <- read.csv("C:/Users/Beatriz/Downloads/pob-xlsx (1).csv", stringsAsFactors=FALSE)
Exploracin de la data

21

head(presidentes)
##
##
##
##
##
##
##
##
##
##
##
##
##
##

nombre
1
cristobal mendoza
2
juan escalona
3
baltazar padron
4
francisco espejo
5 fernando rodriguez del toro
6
javier ustariz
cargo fecha fin
1 presidente 1811 1812
2 presidente 1811 1812
3 presidente 1811 1812
4 presidente 1812 1812
5 presidente 1812 1812
6 presidente 1812 1812

partido
independiente
independiente
independiente
independiente
independiente
independiente

elecciones
elecciones
elecciones
elecciones
elecciones
elecciones

modo.poder
indirectas
indirectas
indirectas
indirectas
indirectas
indirectas

# cuantos casos
nrow(presidentes)
## [1] 88
head(vices)
##
##
##
##
##
##
##
##
##
##
##
##
##
##

nombre
1 mendoza, escalona, padron
2 mendoza, escalona, padron
3 espejo, rodriguez, ustariz
4 mendoza, escalona, padron
5
francisco de miranda
6
simon bolivar
cargo fecha fin
1 vicepresidente 1861 1863
2 vicepresidente 1861 1863
3 vicepresidente 1863 1864
4 vicepresidente 1863 1864
5 vicepresidente 1812 1812
6 vicepresidente 1813 1814

partido
Vicepresidente
independiente
juan escalona
independiente
baltazar porras
independiente fernando rodriguez del toro
independiente
javier ustariz
independiente
sin vicepresidente
independiente
sin vicepresidente

# cuantos casos
nrow(vices)
## [1] 47
Para establecer estas relaciones, puedo en principio tratar de determinar qu personas han sido escogidas
por qu partido: el partido escoge a la persona. Luego, puedo ver qu presidente eligi cual vicepresidente.
Adicionalmente, puedo tambin observar qu personas han estado en qu cargos, y por ltimo, podra
establecer la co-ocurrencia de personas en un cargo dado, segn la fecha
Preparacion de la data

22

# vicepresidentes elegidos por cual presidente


vicepresidentes<-as.matrix(table(vices[, c(1,3)]))
head.matrix(vicepresidentes)
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##

Vicepresidente
nombre
adina bastidas andres narvarte
andres narvarte
0
1
carlos soublette
0
0
espejo, rodriguez, ustariz
0
0
francisco de miranda
0
0
hugo chavez
1
0
jose antonio paez
0
1
Vicepresidente
nombre
antonio leocadio guzman antonio leocadio
andres narvarte
0
0
carlos soublette
0
0
espejo, rodriguez, ustariz
0
0
francisco de miranda
0
0
hugo chavez
0
0
jose antonio paez
0
0
Vicepresidente
nombre
baltazar porras carlos soublette
andres narvarte
0
0
carlos soublette
0
1
espejo, rodriguez, ustariz
0
0
francisco de miranda
0
0
hugo chavez
0
0
jose antonio paez
0
1
Vicepresidente
nombre
diego bautista urbaneja diosado cabello
andres narvarte
0
0
carlos soublette
1
0
espejo, rodriguez, ustariz
0
0
francisco de miranda
0
0
hugo chavez
0
1
jose antonio paez
1
0
Vicepresidente
nombre
elias jaua fernando rodriguez del toro
andres narvarte
0
0
carlos soublette
0
0
espejo, rodriguez, ustariz
0
1
francisco de miranda
0
0
hugo chavez
1
0
jose antonio paez
0
0
Vicepresidente
nombre
francisco antonio zea
andres narvarte
0
carlos soublette
0
espejo, rodriguez, ustariz
0
francisco de miranda
0
hugo chavez
0
23

##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##

jose antonio paez

0
Vicepresidente
nombre
francisco de paula santander isaias rodriguez
andres narvarte
0
0
carlos soublette
0
0
espejo, rodriguez, ustariz
0
0
francisco de miranda
0
0
hugo chavez
0
1
jose antonio paez
0
0
Vicepresidente
nombre
javier ustariz joaquin herrera
andres narvarte
0
0
carlos soublette
0
0
espejo, rodriguez, ustariz
0
0
francisco de miranda
0
0
hugo chavez
0
0
jose antonio paez
0
0
Vicepresidente
nombre
jorge arreaza jorge rodriguez
andres narvarte
0
0
carlos soublette
0
0
espejo, rodriguez, ustariz
0
0
francisco de miranda
0
0
hugo chavez
1
1
jose antonio paez
0
0
Vicepresidente
nombre
jose maria carrenio jose vicente rangel
andres narvarte
1
0
carlos soublette
0
0
espejo, rodriguez, ustariz
0
0
francisco de miranda
0
0
hugo chavez
0
1
jose antonio paez
0
0
Vicepresidente
nombre
juan escalona manuel felipe de tovar
andres narvarte
0
0
carlos soublette
0
0
espejo, rodriguez, ustariz
0
0
francisco de miranda
0
0
hugo chavez
0
0
jose antonio paez
0
0
Vicepresidente
nombre
nicolas maduro no designado pedro gual.
andres narvarte
0
0
0
carlos soublette
0
0
0
espejo, rodriguez, ustariz
0
0
0
francisco de miranda
0
0
0
hugo chavez
1
0
0
jose antonio paez
0
0
0
Vicepresidente
nombre
ramon carrizales santos michelena
andres narvarte
0
0
carlos soublette
0
1
espejo, rodriguez, ustariz
0
0
24

##
francisco de miranda
0
##
hugo chavez
1
##
jose antonio paez
0
##
Vicepresidente
## nombre
sin vicepresidente
##
andres narvarte
0
##
carlos soublette
0
##
espejo, rodriguez, ustariz
0
##
francisco de miranda
1
##
hugo chavez
0
##
jose antonio paez
2

0
0
1

vg1 <-graph.incidence(vicepresidentes, mode=c("all"))


# analisis de la estructura del grafo y de las relaciones presentes
estructura(vg1)
##
##
##
##
##
##
##
##
##

Indicadores valor
1
nodos 45.00
2
aristas 43.00
3
densidad 0.04
4
diametro 8.00
5
long.med.cam 2.86
6
grado medio 1.91
7
modularidad 0.74
8 coefic.cluster 0.00

relaciones(vg1)
##
relaciones valor
## 1 potenciales 990.00
## 2
presentes 43.00
## 3 % presentes
4.34
par(bg="gray15",mar=c(1,1,1,1))
plot(vg1,vertex.label=NA, asp=FALSE,
vertex.size =degree(vg1)/max(degree(vg1)),
vertex.color= "gray90",
vertex.frame.color= "gray90",
edge.color="gray55",
edge.arrow.size=0.6)

25

Puedo agregar, usando otra va que tiene el paquete igraph, algunos atributos. Esta va, da los mismos
resultados que antes obteniamos agregando los atributos con la funcin plot(); la diferencia es que estos
atributos ahora se aanden a la informacin del grafo. Si deseo exportar luego esa red para visualizarla con
cualquier otro programa, los atributos se exportarn tambin.
nTerms <- nrow(vicepresidentes)
nDocs <- ncol(vicepresidentes)
idx.terms <- 1:nTerms
idx.docs <- (nTerms+1):(nTerms+nDocs)
V(vg1)$color[idx.terms] <- rgb(0, 1, 1, .5)
V(vg1)$size[idx.terms] <- 6
V(vg1)$color[idx.docs] <- rgb(1, 1, 0, .4)
V(vg1)$size[idx.docs] <- 4

26

V(vg1)$frame.color[idx.terms] <- rgb(0, 1, 1, .5)


V(vg1)$frame.color[idx.docs] <- rgb(1, 1, 0, .4)
V(vg1)$label.cex=degree(vg1)/3
Preparo el layout
minC <- rep(-Inf, vcount(vg1))
maxC <- rep(Inf, vcount(vg1))
minC[1] <- maxC[1] <- 0
co <- layout_with_fr(vg1, niter=20000, minx=minC,
maxx=maxC,
miny=minC, maxy=maxC)
Represento este grafo escalndolo por el nmero de veces que un presidente escogi a un vicepresidente.
Ntese que al diferenciar los colores de los cargos, necesariamente algunos nombres se repetiran con distintos
colores, eso nos indicar que algunos vicepresidentes luego fueron presidentes:
plot(vg1, layout=co)

27

julian castro

manuel felipe de tovar

javier ustariz

manuel felipe de tovar


mendoza, escalona, padron

pedro gual.
pedro gual

baltazar porras

juan escalona
no designado

pedro carmona estang

joaquin herrera

juan crisostomo falcon

jose gregorio monagas


espejo, rodriguez, ustariz

antonio leocadio guzman

fernando rodriguez del toro


francisco antonio zea

antonio leocadio
francisco de miranda

simon bolivar
francisco de paula santander

jose tadeo monagas


nicolas maduro

sin vicepresidente
jose maria carrenio
diosado cabello

diego bautista urbaneja

jose maria carrenio

jose antonio paez

elias jaua

andres narvarte

hugo chavez

adina bastidas

carlos soublette
andres narvarte

jorge arreaza

jose vicente rangel

nicolas maduro

carlos soublette
isaias rodriguez

santos michelena
ramon carrizales
jorge rodriguez

jose maria vargas

Los presidentes que ms veces han elegido vicepresidentes han sido Hugo Chvez y Jos Antonio Pez. Diego
Baustista Urbaneja ha sido la persona que ms veces, distintos presidentes eligieron como vicepresidente.
Esta red nos da informacin interesante sobre la etapa republicana del siglo XIX en cuanto a la red en torno
a la vicepresidencia.
Veamos ahora, qu vicepresidentes, aunque no hayan sido elegidos muchas veces, han estado intermediando
entre el cargo de vicepresidentes y presidentes
V(vg1)$label.cex=betweenness(vg1)/25
La visualizacin me ilustra varias cosas. Que Pez tendi a seleccionar vicepresidentes que luego fueron
presidentes; que ha sido ms el nmero de veces que la vicepresidencia permaneci vaca y que Andrs
Narvarte como presidente y vicepresidente ha tendio una influencia importante en el siglo XIX. Simn Bolvar
tambin ha ocupado una posicin importante al unir diversos vicepresidentes en distintos momentos. En la
denominada V Repblica, Nicols Maduro ha unido tambin los dos cargos.
28

Exploro esta red segn el partido. Aqu parto del supuesto de que el partido elige a quien posteriomente ser
presidente, y por tanto, tiene influencia en el vicepresidente que se elige. Ntese que, usando un procedimiento
distinto puedo emplear el partido como atributo para colorear la red. Ese procedimiento lo veremos luego.
vpartidos<-as.matrix(table(vices[, c(2,3)]))
head.matrix(vpartidos)
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##

Vicepresidente
partido
adina bastidas andres narvarte antonio leocadio guzman
conservador
0
4
2
independiente
0
0
0
liberal
0
0
0
psuv
1
0
0
Vicepresidente
partido
antonio leocadio baltazar porras carlos soublette
conservador
1
0
2
independiente
0
1
0
liberal
1
0
0
psuv
0
0
0
Vicepresidente
partido
diego bautista urbaneja diosado cabello elias jaua
conservador
4
0
0
independiente
0
0
0
liberal
0
0
0
psuv
0
1
1
Vicepresidente
partido
fernando rodriguez del toro francisco antonio zea
conservador
0
0
independiente
1
1
liberal
0
0
psuv
0
0
Vicepresidente
partido
francisco de paula santander isaias rodriguez
conservador
0
0
independiente
1
0
liberal
0
0
psuv
0
1
Vicepresidente
partido
javier ustariz joaquin herrera jorge arreaza
conservador
0
0
0
independiente
1
0
0
liberal
0
1
0
psuv
0
0
2
Vicepresidente
partido
jorge rodriguez jose maria carrenio jose vicente rangel
conservador
0
1
0
independiente
0
0
0
liberal
0
0
0
psuv
1
0
1
Vicepresidente
partido
juan escalona manuel felipe de tovar nicolas maduro
conservador
0
0
0
independiente
1
0
0
29

##
liberal
0
3
0
##
psuv
0
0
1
##
Vicepresidente
## partido
no designado pedro gual. ramon carrizales santos michelena
##
conservador
0
0
0
2
##
independiente
0
0
0
0
##
liberal
0
2
0
0
##
psuv
1
0
1
0
##
Vicepresidente
## partido
sin vicepresidente
##
conservador
3
##
independiente
3
##
liberal
1
##
psuv
0
vg2 <-graph.incidence(vpartidos, mode=c("all"))
# analisis de la estructura y de las relaciones
estructura(vg2)
##
##
##
##
##
##
##
##
##

Indicadores valor
1
nodos 31.00
2
aristas 30.00
3
densidad 0.06
4
diametro 4.00
5
long.med.cam 2.64
6
grado medio 1.94
7
modularidad 0.64
8 coefic.cluster 0.00

relaciones(vg2)
##
relaciones valor
## 1 potenciales 465.00
## 2
presentes 30.00
## 3 % presentes
6.45
par(bg="gray15",mar=c(1,1,1,1))
plot(vg2,vertex.label=NA, asp=FALSE,
vertex.size =degree(vg2)/max(degree(vg2)),
vertex.color= "gray90",
vertex.frame.color= "gray90",
edge.color="gray55",
edge.arrow.size=0.6)

30

nTerms <- nrow(vpartidos)


nDocs <- ncol(vpartidos)
idx.terms <- 1:nTerms
idx.docs <- (nTerms+1):(nTerms+nDocs)
V(vg2)$color[idx.terms] <- rgb(0.5, 0.7, 1, .5)
V(vg2)$size[idx.terms] <- 6
V(vg2)$color[idx.docs] <- rgb(1, 1, 0.5, .4)
V(vg2)$size[idx.docs] <- 4
V(vg2)$frame.color[idx.terms] <- rgb(0.5, 0.7, 1, .5)
V(vg2)$frame.color[idx.docs] <- rgb(1, 1, 0.5, .4)
V(vg2)$label.cex=degree(vg2)/3
Visualizo
31

plot(vg2)

jose vicente rangel


elias jaua

jorge rodriguez

nicolas maduro

francisco de paula santander

psuv

baltazar porras
diosado cabello

jorge arreaza

francisco antonio zea

isaias rodriguez
no designado

fernando rodriguez del toro

javier ustariz

independiente

adina bastidas

ramon carrizales

juan escalona

sin vicepresidente

santos michelena

manuel felipe de tovar

carlos soublette

liberal
antonio leocadio

conservador
antonio leocadio guzman

joaquin herrera

pedro gual.
diego bautista urbaneja
jose maria carrenio

andres narvarte

Este grafo nos da an mayor informacin con respecto a la red del poder en torno a las vicepresidencias
durante el siglo XIX. La vicepresidencia estuvo vaca independientemenete del tipo de partido. Antonio
Leocadio Guzman fye vice presidente tanto para conservadores como para liberales.
Veamos ahora la presidencia segn el tipo de elecciones realizadas. Aqu el presidente es escogido por las
elecciones. De nuevo, esta data presenta inconsistencias, la usamos con fines didcticos
pelecciones<-as.matrix(table(presidentes[, c(1,3)]))
head.matrix(pelecciones)
##

modo.poder
32

##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##

nombre
campaa admirable elecciones directas
andres narvarte
0
0
antonio guzman blanco
0
0
baltazar padron
0
0
carlos andres perez
0
2
carlos delgado chalbaud
0
0
carlos soublette
0
0
modo.poder
nombre
elecciones indirectas golpe de estado
andres narvarte
0
0
antonio guzman blanco
3
1
baltazar padron
1
0
carlos andres perez
0
0
carlos delgado chalbaud
0
1
carlos soublette
1
0
modo.poder
nombre
presidente designado presidente encargado
andres narvarte
0
0
antonio guzman blanco
1
0
baltazar padron
0
0
carlos andres perez
0
0
carlos delgado chalbaud
0
0
carlos soublette
0
1
modo.poder
nombre
presidente provisional restituci3n presidente
andres narvarte
2
0
antonio guzman blanco
0
0
baltazar padron
0
0
carlos andres perez
0
0
carlos delgado chalbaud
0
0
carlos soublette
0
0

vg3 <-graph.incidence(pelecciones, mode=c("all"))


# estructura y relaciones
estructura(vg3)
##
##
##
##
##
##
##
##
##

Indicadores valor
1
nodos 62.00
2
aristas 74.00
3
densidad 0.04
4
diametro 6.00
5
long.med.cam 3.40
6
grado medio 2.39
7
modularidad 0.56
8 coefic.cluster 0.00

relaciones(vg3)
##
relaciones
valor
## 1 potenciales 1891.00
## 2
presentes
74.00
## 3 % presentes
3.91
33

par(bg="gray15",mar=c(1,1,1,1))
plot(vg3,vertex.label=NA, asp=FALSE,
vertex.size =degree(vg3)/max(degree(vg3)),
vertex.color= "gray90",
vertex.frame.color= "gray90",
edge.color="gray55",
edge.arrow.size=0.6)

Mejoro algunos atributos de la red


nTerms <- nrow(pelecciones)
nDocs <- ncol(pelecciones)

34

idx.terms <- 1:nTerms


idx.docs <- (nTerms+1):(nTerms+nDocs)
V(vg3)$color[idx.terms] <-"darkorchid4"
V(vg3)$size[idx.terms] <- 6
V(vg3)$color[idx.docs] <- "firebrick"
V(vg3)$size[idx.docs] <- 4
V(vg3)$frame.color[idx.terms] <- "darkorchid4"
V(vg3)$frame.color[idx.docs] <- "firebrick"
V(vg3)$label.cex=degree(vg3)/15
plot(vg3)

campaa admirable

jose gregorio monagas

francisco linares alcantara


isaias medina angarita

cristobal mendoza

javier ustariz
juan pablo rojas paul

simon bolivar

juan escalona

francisco de miranda

raimundo andueza palacio


fernando rodriguez del toro
francisco espejo

juan bautista perez

jose tadeo monagas

presidente designado

baltazar padron

jose ruperto monagas

elecciones indirectas
jose antonio paez
juan vicente gomez

antonio guzman blanco


juan crisostomo falcon
wolfgang larrazabal

guillermo tell villegas


eleazar lopez contreras

pedro carmona estanga

jose maria vargas

golpe de estado

hermogenes lopez

julian castro

carlos delgado chalbaud

presidente provisional
andres narvarte

joaquin crespo
cipriano castro

carlos soublette

restitucin presidente

romulo betancourt

pedro gual
nicolas maduro

hugo chavez

ramon jose velasquez

elecciones directas
presidente encargado

diosdado cabello

marcos perez jimenez

ignacio andrade

jose gil fortoul

manuel felipe de tovar

laureano vallenilla

jaime lusinchi

carlos andres perez

victorino marquez bustillos

romulo gallegos

german suarez flamerich

luis herrera campins

edgar sanabria

raul leoni
jose maria carrenio

octavio lepage

35

rafael caldera

V(vg3)$label.cex=betweenness(vg3)/1100
plot(vg3, layout=layout.drl)

campaa admirable

simon bolivar

baltazar padron

francisco de miranda
jose ruperto monagas

pedro carmona estanga


jose gregorio monagas
isaias medina angarita
cipriano castro
raimundo andueza palacio
presidente designado

jose antonio paez


antonio guzman blanco

juan bautista perez


julian castro
jose tadeofrancisco
monagas linares alcantara

juan crisostomo falcon

andres narvarte
wolfgang larrazabal

golpe de estado

elecciones indirectas
eleazar lopez contreras

fernando rodriguez del toro


juan escalona
presidente provisional
joaquin crespo

juan pablo rojas paul


carlos delgado chalbaud
cristobal mendoza
javier ustariz

romulo gallegos
hermogenes lopez
romulo betancourt

jose maria vargas

francisco espejo

rafael caldera
carlos soublette

pedro gual

jaime lusinchi
luis herrera campins
elecciones directas

nicolas maduro

ignacio andrade

german suarez flamerich


diosdado cabello

manuel felipe de tovar

raul leoni

carlos andres perez

presidente encargado
marcos perez jimenez

victorino marquez
josebustillos
maria carrenio
ramon jose velasquez

edgar sanabria

jose gil fortoul


laureano vallenilla
octavio lepage

Diversos presidentes han llegado al poder a travs de diversos medios: por golpe de estado y luego elecciones,
bien sea directa o indirectas. Otros fueron presidentes encargados y luego electos por elecciones-

36