1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
library(igraph)
library(grid)
library(gridExtra)
# create bipartite graph
edges = c(1,6,
1,7,
2,8,
3,7,
3,8,
3,10,
4,7,
4,8,
5,6,
5,9)
g = graph.bipartite(c(rep(T,5),rep(F,5)),edges)
# need to plot table separately from graphs and combine outside R
par(mfrow=c(1,2))
# (A) data table
data = data.frame(get.edgelist(g))
data$X2 = toupper(letters[data$X2-5])
colnames(data) = c('Event Code (EC)','Identity Code (IC)')
grid.newpage(F)
plot(graph(1:2),layout=matrix(c(1,1,1,1),ncol=2))
grid.table(data)
# (B) bipartite person-event graph
layout = matrix(c(rep(seq(4,0,-1),2),rep(0,5),rep(1,5)),ncol=2)
labels = c( 1:5, toupper(letters[1:5]) )
cols = c( rep('#1a9850',5), rep('#1f78b4',5) )
plot(g, layout=layout[,2:1], vertex.color=cols,edge.color='black',
vertex.frame.color=NA,vertex.size=30,vertex.label=labels,
vertex.label.color='white',vertex.label.family='sans')
# (C) unipartite person-person graph
g2 = bipartite.projection(g)$proj1
plot(g2, vertex.color='#1f78b4', edge.color='black',
vertex.frame.color=NA,vertex.size=30,vertex.label=toupper(letters[1:5]),
vertex.label.color='white',vertex.label.family='sans')
|