From ec8f8e054608da3565e8505b36cefe82f5e5aa42 Mon Sep 17 00:00:00 2001 From: Ben Green Date: Wed, 23 Sep 2015 00:37:26 -0400 Subject: write script to create data prep diagram in R --- R Scripts/plot-data-prep.R | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 R Scripts/plot-data-prep.R (limited to 'R Scripts') diff --git a/R Scripts/plot-data-prep.R b/R Scripts/plot-data-prep.R new file mode 100644 index 0000000..b56ca1f --- /dev/null +++ b/R Scripts/plot-data-prep.R @@ -0,0 +1,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') + -- cgit v1.2.3-70-g09d2