diff options
| author | Ben Green <bgreen@g.harvard.edu> | 2015-09-24 17:02:04 -0400 |
|---|---|---|
| committer | Ben Green <bgreen@g.harvard.edu> | 2015-09-24 17:02:04 -0400 |
| commit | d191aaebe1db710cb8e839c925d10248bcb82cec (patch) | |
| tree | c4c518dd5bbabd2d9af23bea31d97c40bf0a0b86 | |
| parent | b9db9e3d2fef634016ae881c7c8da3da6642f16c (diff) | |
| download | criminal_cascades-d191aaebe1db710cb8e839c925d10248bcb82cec.tar.gz | |
plot tweaks
| -rw-r--r-- | R Scripts/plot-data-prep.R | 51 | ||||
| -rw-r--r-- | R Scripts/plot-network.R | 4 |
2 files changed, 36 insertions, 19 deletions
diff --git a/R Scripts/plot-data-prep.R b/R Scripts/plot-data-prep.R index d577b5d..937512a 100644 --- a/R Scripts/plot-data-prep.R +++ b/R Scripts/plot-data-prep.R @@ -8,6 +8,7 @@ library(gridExtra) # create bipartite graph edges = c(1,6, 1,7, + 1,10, 2,8, 3,7, 3,8, @@ -18,7 +19,7 @@ edges = c(1,6, 5,9) g = graph.bipartite(c(rep(T,5),rep(F,5)),edges) -par(mfrow=c(1,3)) +par(mfrow=c(1,3), mar=c(1,1,1,1)) # (A) data table data = data.frame(get.edgelist(g)) data$X2 = toupper(letters[data$X2-5]) @@ -38,21 +39,24 @@ plot(g, layout=layout[,2:1], vertex.color=cols,edge.color='black', vertex.label.color='white',vertex.label.family='sans') # (C) unipartite person-person graph +par(mar=rep(1,4)) g2 = bipartite.projection(g)$proj1 -layout.g2 = layout.auto(g2) -plot(g2, vertex.color='#1f78b4', edge.color='black',layout=layout.g2, +layout.g2 = matrix(c(0,.33,-.75,-.33,0,-1,0,1,.75,-.33),ncol=2,byrow=T) +plot(g2, vertex.color='#1f78b4', edge.color='black',layout=layout.g2,rescale=F, vertex.frame.color=NA,vertex.size=30,vertex.label=toupper(letters[1:5]), vertex.label.color='white',vertex.label.family='sans') -############# +############################################################################## +############################################################################## #### Hawkes Process Diagram -par(mfrow=c(1,3)) +layout(matrix(c(1,2,3,3,3,3), ncol=2, byrow = TRUE)) vics = data.frame(IC = toupper(letters[1:5]), Victim = c(T,F,F,F,T), - Day = c(3,NA,NA,NA,5)) + Day = c(2,NA,NA,NA,4)) colnames(vics) = c('Identity Code (IC)','Victim','Infection Date') +# A plot.new() vps <- baseViewports() pushViewport(vps$figure) @@ -62,28 +66,37 @@ grid.table(vics) cols = rep('#1f78b4',vcount(g2)) cols[vics$Victim==T] = '#e41a1c' -plot(g2, vertex.color=cols, edge.color='black',layout=layout.g2, +# B +plot(g2, vertex.color=cols, edge.color='black',layout=layout.g2,rescale=F, vertex.frame.color=NA,vertex.size=30,vertex.label=toupper(letters[1:5]), - vertex.label.color='white',vertex.label.family='sans') + vertex.label.color='white',vertex.label.family='sans',axes=F) +# C +par(mar=c(5.1, 4.1, 4.1, 2.1)) rate = function(x){ print(x) - r = rep(.3,length(x)) - times = c(1,4) + r = rep(base+0.3,length(x)) for (time in times){ - r[x>=time] = r[x>=time] + 1.5*exp((time-x[x>=time])/4) + r[x>=time] = r[x>=time] + 1.5*exp((time-x[x>=time])/2) } return(r) } -plot(rate,from=0,to=10,ylim=c(0,3),lwd=0,bty='l', - yaxt='n',xlab='Date',ylab='Infection Rate') -mtext("Date", line = 3, side = 1) -n = 1000 -xs = c(0,seq(0,10,length.out=n),10) -ys = rate(xs) -ys[c(1,n+2)] = 0 -polygon(xs,ys,col='#1f78b4',border=NA) +tmin = 1 +tmax = 6 +n = 1000 +plot(rate,from=tmin,to=tmax,ylim=c(0,15),lwd=0,bty='l',col='white', + yaxt='n',xlab='Date',ylab='Infection Rate') +for(i in 1:vcount(g2)){ + base <<- 3*(5-i) + times <<- vics[neighbors(g2,i),3] + times <<- times[!is.na(times)] + xs = c(tmin,seq(tmin,tmax,length.out=n),tmax) + ys = rate(xs) + ys[c(1,n+2)] = base + polygon(xs,ys,col='#1f78b4',border=NA) +} +axis(2, at=seq(0.3,12.3,3), lab=toupper(letters[seq(5,1,-1)]), tick=F, las=T,lwd=0) diff --git a/R Scripts/plot-network.R b/R Scripts/plot-network.R index 4c1f9fa..93c48fb 100644 --- a/R Scripts/plot-network.R +++ b/R Scripts/plot-network.R @@ -19,3 +19,7 @@ load('Results/layout.RData') par(bg='#e0e0e0') plot(lcc,vertex.size=1,vertex.color=cols,vertex.label=NA, layout=layout.drl,edge.color=NA,vertex.frame.color=NA) + +# library(rgl) +rglplot(lcc,vertex.size=1,vertex.color=cols,vertex.label=NA, + layout=layout.drl,edge.color=NA,vertex.frame.color=NA) |
