Está en la página 1de 10

Usando el paquete 

NetworkD45
Paquetes necesarios

library(networkD3)
library(tidyverse)
library(bipartite)
1. Convertimos la matrix de datos a un Data Frame

datos <- bezerra2009 %>% as_tibble(rownames = "source")


2. Covertimos la tabla a la forma adecuada para ser leida por el paquete

links <- datos %>%


pivot_longer(2:14, names_to = "target", values_to = "value")
3. Creamos un Data Frame con todas especies de plantas

nodes <- data.frame(


name=c(as.character(links$source),
as.character(links$target)) %>% unique()
)
4. Hacer las conecciones con un ID.

links$IDsource <- match(links$source, nodes$name)-1


links$IDtarget <- match(links$target, nodes$name)-1
5. Hacer el plot

sankeyNetwork(Links = links, Nodes = nodes,


Source = "IDsource", Target = "IDtarget",
Value = "value", NodeID = "name",
sinksRight=F, fontSize = 10)
Diplopterys.pubipetalaByrsonima.gardneranaBanisteriopsis.muricataHeteropterys.s
p1Heteropterys.sp2Dicella.bracteosaCarolus.chaseiStigmaphyllon.paraliasBanisterio
psis.stellarisBanisteriopsis.schizopteraStigmaphyllon.auriculatumStigmaphyllon.cilia
tumJanusia.anisandraCentris.aeneaCentris.fuscataCentris.caxiensisCentris.tarsataCen
tris.flavifronsCentris.trigonoidesCentris.obsoletaEpicharis.sp2Apis.melliferaCentris.s
p3Centris.sp1Xylocopa.spXylocopa.grisescens

Usando el paquete 
Paquetes necesarios
library(circlize)
library(tidyverse)
11. Creamos una matrix de datos

valores <- c(500:1000)

muestra <- sample(valores, 15)

col_pal <- c(bee1 = "#6a3d9a", bee2 = "#e31a1c", bee3 = "#ff7f00", bee4 =


"#1f78b4", bee5 = "#fb9a99",
plant1 = "#33a02c", plant2 = "#33a02c" , plant3 = "#33a02c")

tabla <- matrix(muestra, nrow = 5, dimnames = list(c("bee1", "bee2", "bee3",


"bee4", "bee5"),
c("plant1",
"plant2", "plant3")))
2. Graficamos

chordDiagram(tabla, grid.col = col_pal)

Diagrama de interacciones
   R  Bipartite circlize Network3D
1. Cargar los paquetes y la tabla de datos.

Primero cargamos el paquete “bipartite”, si aun no esta instalado debemos


instalarlo primero con la funcion install.packages(“bipartite”)

library(bipartite)
data("bezerra2009")
En este ejemplo usaremos la tabla 1 de datos de bezerra2009 la cual consta de
observaciones de 38 individuos pertenecientes a 13 especies de plantas
oleaginosas de la familia Malphighiaceae. Se colectaron los visitantes florales y solo
se consideraron los visitantes legítimos. Los números en la tabla se refieren a la
cantidad de visitantes de cada especie de abeja recolectada en cada especie de
planta. El número de abeja que visitaron las flores se registraron durante cuatro
días consecutivos, de 5.00 a 17.00 con un total de 1392h de observaciones.

Ubicación: Parque Nacional do Catimbau, Brasil (8°24’00" -37°36’35“S y 3°09’30” -


37°14’40"W)

Para mas información puede visitar http://www.nceas.ucsb.edu/interactionweb

Table 1: Tabla de datos

C C C C C E A C C X
Ce Ce Xy
e e e e e p p e e y
nt nt lo
n n nt n nt ic is n n l
ri ri co
tr tr ri tr ri h . t t o
s.f s.t pa
is is s. is s. a m r r c
la ri .gr
.a .f ca .t o ri el i i o
vi go is
e u xi a b s. li s. s. p
fr no es
n sc e rs so s fe s s a
o id ce
e at ns at le p r p p .s
ns es ns
a a is a ta 2 a 3 1 p

Dip
lop
ter 1 1
7 4 3 3 3
ys. 3 3 41 25
4 6 0 2 6 6 0 0 0
pu 6 6 6 6
0 0 8 4 8
bip 8 4
etal
a
Table 1: Tabla de datos

C C C C C E A C C X
Ce Ce Xy
e e e e e p p e e y
nt nt lo
n n nt n nt ic is n n l
ri ri co
tr tr ri tr ri h . t t o
s.f s.t pa
is is s. is s. a m r r c
la ri .gr
.a .f ca .t o ri el i i o
vi go is
e u xi a b s. li s. s. p
fr no es
n sc e rs so s fe s s a
o id ce
e at ns at le p r p p .s
ns es ns
a a is a ta 2 a 3 1 p
Byr
son
2
ima 9 3 4
1 28 2
.gar 2 2 6 0 0 0 0 0 0 0
0 4 8
dne 4 0 4
8
ran
a
Ba
nist
eri
3 4 1 1 9 3 3 1
ops 27 65 4
9 6 0 4 1 6 0 6 6 84
is. 2 2 4
6 8 8 0 2 4 8 4
mu
ric
ata
Het
ero 7 6 5 3
40 30 2 7
pte 6 8 2 0 0 0 0 0 0
4 0 8 6
rys. 4 0 8 8
sp1
Het
ero 7 6 5 3 1 1
32
pte 4 5 2 3 0 0 1 1 0 0 0 0
4
rys. 0 6 8 2 6 6
sp2
Dic 5 5 3 1 52 0 0 0 0 0 0 0 0
ella 5 1 5 3 4
.br 6 2 6 2
act
Table 1: Tabla de datos

C C C C C E A C C X
Ce Ce Xy
e e e e e p p e e y
nt nt lo
n n nt n nt ic is n n l
ri ri co
tr tr ri tr ri h . t t o
s.f s.t pa
is is s. is s. a m r r c
la ri .gr
.a .f ca .t o ri el i i o
vi go is
e u xi a b s. li s. s. p
fr no es
n sc e rs so s fe s s a
o id ce
e at ns at le p r p p .s
ns es ns
a a is a ta 2 a 3 1 p
eos
a
Car
olu 6 4 4 2
s.c 0 5 3 0 0 0 0 0 0 0 0 0 0
has 4 2 2 0
ei
Stig
ma
ph 5 8
yllo 0 1 0 0 0 0 0 0 0 0 0 0 0
n.p 4 6
ara
lias
Ba
nist
eri
2 3 2 1
ops
9 0 4 1 0 0 0 0 0 0 0 0 0
is.s
2 0 4 6
tell
ari
s
Ba 2 2 1 1 0 0 0 0 0 0 0 0 0
nist 2 2 2 2
eri 8 4 4 0
ops
is.s
chi
zop
Table 1: Tabla de datos

C C C C C E A C C X
Ce Ce Xy
e e e e e p p e e y
nt nt lo
n n nt n nt ic is n n l
ri ri co
tr tr ri tr ri h . t t o
s.f s.t pa
is is s. is s. a m r r c
la ri .gr
.a .f ca .t o ri el i i o
vi go is
e u xi a b s. li s. s. p
fr no es
n sc e rs so s fe s s a
o id ce
e at ns at le p r p p .s
ns es ns
a a is a ta 2 a 3 1 p
ter
a
Stig
ma
ph
yllo 2 1
6 19
n.a 4 6 0 0 0 0 0 0 0 0 0
8 6
uri 0 4
cul
atu
m
Stig
ma
ph 2 1
16
yllo 6 9 0 0 0 0 0 0 0 0 0 0
4
n.ci 8 6
liat
um
Jan
usi
1 2
a.a 9
8 4 0 0 0 0 0 0 0 0 0 0
nis 6
8 4
and
ra
2. Graficar

Cuando los datos no se encuentren organizados de mayor a menor se debe usar


antes la funcion sortweb() sobre los datos

plotweb(bezerra2009, method="normal", text.rot="90",


labsize=0.9, col.low="#CDCD00", col.high="#27408B", col.interaction="cornsilk4")

Estas interacciones tambien se pueden graficar de otra manera a traves de la


funcion visweb()

visweb(bezerra2009, plotsize=9)
Usando el paquete NetworkD3
Paquetes necesarios

library(networkD3)
library(tidyverse)
library(bipartite)
1. Convertimos la matrix de datos a un Data Frame

datos <- bezerra2009 %>% as_tibble(rownames = "source")


2. Covertimos la tabla a la forma adecuada para ser leida por el paquete

links <- datos %>%


pivot_longer(2:14, names_to = "target", values_to = "value")
3. Creamos un Data Frame con todas especies de plantas

nodes <- data.frame(


name=c(as.character(links$source),
as.character(links$target)) %>% unique()
)
4. Hacer las conecciones con un ID.
links$IDsource <- match(links$source, nodes$name)-1
links$IDtarget <- match(links$target, nodes$name)-1
5. Hacer el plot

sankeyNetwork(Links = links, Nodes = nodes,


Source = "IDsource", Target = "IDtarget",
Value = "value", NodeID = "name",
sinksRight=F, fontSize = 10)
Diplopterys.pubipetalaByrsonima.gardneranaBanisteriopsis.muricataHeteropterys.s
p1Heteropterys.sp2Dicella.bracteosaCarolus.chaseiStigmaphyllon.paraliasBanisterio
psis.stellarisBanisteriopsis.schizopteraStigmaphyllon.auriculatumStigmaphyllon.cilia
tumJanusia.anisandraCentris.aeneaCentris.fuscataCentris.caxiensisCentris.tarsataCen
tris.flavifronsCentris.trigonoidesCentris.obsoletaEpicharis.sp2Apis.melliferaCentris.s
p3Centris.sp1Xylocopa.spXylocopa.grisescens

Usando el paquete circlize
Paquetes necesarios

library(circlize)
library(tidyverse)
1. Creamos una matrix de datos

valores <- c(500:1000)

muestra <- sample(valores, 15)

col_pal <- c(bee1 = "#6a3d9a", bee2 = "#e31a1c", bee3 = "#ff7f00", bee4 =


"#1f78b4", bee5 = "#fb9a99",
plant1 = "#33a02c", plant2 = "#33a02c" , plant3 = "#33a02c")

tabla <- matrix(muestra, nrow = 5, dimnames = list(c("bee1", "bee2", "bee3",


"bee4", "bee5"),
c("plant1",
"plant2", "plant3")))
2. Graficamos

chordDiagram(tabla, grid.col = col_pal)

También podría gustarte