R/plotMap.R

plotMap <- function(y.idx = NULL, XY=NULL, YY=NULL, long=NULL, lat=NULL, size.Y=NULL, size.X=NULL, state = NULL, size.name = NULL, file=NULL) {
  
  states <- map_data("state")
  
  if(!is.null(state) ) states <- subset(states, region %in% state )
  if(is.null(y.idx)){
   if(!is.null(XY)) {
     y.idx <- 1:nrow(XY)
   } else {
     y.idx <- 1:nrow(YY)
   }
  }
  
  breaks<- seq(0,1, 0.2)
  break.lab <- format(breaks)
  gradient <- scale_color_gradient2(low = "#ffeda0" , mid="#feb24c", high = "#f03b20",  midpoint = 0.5, name="Posterior Probability\nof Relationship", breaks=breaks, labels=break.lab, limits=c(0,1), expand=c(0,0))

  for(i in y.idx){
    Ydata <- data.frame(value=0, long=long$Y[i], lat=lat$Y[i], size=1)
    if(!is.null(XY)){
      XYdata <- data.frame(value=c(XY[i,]), long=long$X, lat=lat$X, size=size.X)
      
      
      p <- ggplot() + theme(axis.line=element_blank(),axis.text.x=element_blank(),
                            axis.text.y=element_blank(),axis.ticks=element_blank(),
                            axis.title.x=element_blank(),
                            axis.title.y=element_blank(),
                            panel.background=element_blank(),
                            panel.border=element_blank(),
                            panel.grid.major=element_blank(),
                            panel.grid.minor=element_blank(),
                            plot.background=element_blank())
      p <- p + geom_polygon( data=states, aes(x=long, y=lat, group = group),colour="white" )
      p <- p + geom_point( data=XYdata, aes(x=long, y=lat, size = size, color=value)) + 
        scale_size(name=size.name, range = c(0.1,4)) + gradient
      p <- p + geom_point(data=Ydata, aes(x=long, y=lat), stroke = 1.2, shape=24, size=4, color="light blue",fill="white") 
      
      
      if(is.null(file)){
        print(p)
      } else {
        pdf(file=paste0(file,"_Y_",i,"_XCorr.pdf"), height=4, width=7)
        print(p)
        dev.off()
      }
    }
    if(!is.null(YY)){
      YYdata <- data.frame(value=c(YY[i,-i]), long=long$Y[-i], lat=lat$Y[-i], size=1)
      
      
      p <- ggplot() + theme(axis.line=element_blank(),axis.text.x=element_blank(),
                            axis.text.y=element_blank(),axis.ticks=element_blank(),
                            axis.title.x=element_blank(),
                            axis.title.y=element_blank(),
                            panel.background=element_blank(),
                            panel.border=element_blank(),
                            panel.grid.major=element_blank(),
                            panel.grid.minor=element_blank(),
                            plot.background=element_blank())
      p <- p + geom_polygon( data=states, aes(x=long, y=lat, group = group), colour="white" )
      p <- p + geom_point(data=Ydata, aes(x=long, y=lat), stroke = 1.2, shape=24, size=2, color="light blue",fill="white")
      p <- p + geom_point( data=YYdata, aes(x=long, y=lat, color=value), size=1) + gradient
      

      if(is.null(file)){
        print(p)
      } else {
        pdf(file=paste0(file,"_Y_",i,"_YCorr.pdf"), height=4, width=7)
        print(p)
        dev.off()
      }
    }
  }
  
  
  
  
}
eifer4/stochasticSampling documentation built on May 14, 2019, 11:16 a.m.