R/summaryPlotSPT.R

Defines functions summaryPlotSPT

Documented in summaryPlotSPT

#' Summary plot for SpT processes
#'
#' Update the seasons for LU
#' @param spdata spatial dataframe format, with dates in the attached data.
#' @param bgmap background spatial map.
#' @param date.format date format
#' @param plot.all boolean. Should all information be plotted
#' @param title title of the plot.
#' @keywords updating season
#' @export
#' @examples
#' data("WaterQuality")
#'SOI = levels(as.factor(WQ_PPB$Species))[32]
#' subWQ.df = subset(WQ_PPB, Species == SOI, select = c(Date,Measure,Site,Latitude, Longitude))
#' subWQ.df = subWQ.df[!is.na(subWQ.df$Measure),]
#' subWQ.df$Site = as.factor(subWQ.df$Site)
#' SP = SpatialPointsDataFrame(coords = subWQ.df[,c("Longitude", "Latitude")], data = subWQ.df)
#' summaryPlotSPT(SP)
summaryPlotSPT <- function(spdata, bgmap = NULL, date.format = "month", plot.all = T, title = ""){
par(mfrow = c(1,1), mar = c(2,1,1,1))
if(plot.all){
  par(mfrow = c(2,2), mar = c(2,1,1,1))
  #  layout(matrix(c(1,1,1,3,3,3,4,4,4,4,2,2), 2, 6, byrow = TRUE),
  #         widths=c(1,1), heights=c(1,1))
}
# Upper left : Frequency per site

Sites = spdata@data$Site
yrMn = strptime(as.character(spdata@data$Date), "%Y-%m-%d")
if(date.format == "day"){yrMn = as.Date(yrMn)}
if(date.format == "week"){yrMn = format(yrMn, "%Y - %U")}
if(date.format == "month"){yrMn = as.yearmon(yrMn)}
if(date.format == "year"){yrMn = format(yrMn, "%Y")}
#yrMn = as.yearmon(spdata@data$Date)

Freq = table(Sites, yrMn)
plotFreq(Freq, cexT = 0.5)

# Upper right : Diversity
par(mar = c(2,1,1,1))

x = table(spdata@data$Species)
y = ddply(spdata@data, .(Species), summarise, Mean = signif(mean(Measure,na.rm=T),3))
if(!is.null(spdata@data$MeasureUnit[1])){names(y)[2] <- spdata@data$MeasureUnit[1]}

y = na.omit(y)

y = y[sort(y[,2], decreasing = T, index.return=T)$ix,]

if(nrow(y)>10){
  y = y[1:10,]
}
sptemp = subset(spdata@data, Species %in% y[,1])
sptemp = droplevels(sptemp)
ll = create.list.factors(sptemp$Measure, sptemp$Species)
plot.multi.dens(ll, legend = unique(sptemp$Species))

#hist(spdata@data$Measure, main = "", breaks = 50, col = "lightblue")

# Lower left : Maps
colorscale <- rainbow(15)[2:14]
if(!is.null(bgmap)){
if(is.list(bgmap)){
  plot(bgmap[[1]], col="lightgreen", border = "darkgreen")
  for(j in 2:length(bgmap)){
    plot(bgmap[[j]], col=colorscale[j-1], border = colorscale[j-1], add=T)
  }
}else{
  plot(bgmap, col="lightgreen")
}
plot(spdata, add=T, col = rgb(1,0,0,0.5), cex = .5)
} else{
  plot(spdata, col = rgb(1,0,0,0.5), cex = .5)
}
# Lower right :

x = table(spdata@data$Species)
y = ddply(spdata@data, .(Species), summarise, Mean = signif(mean(Measure,na.rm=T),3))
if(!is.null(spdata@data$MeasureUnit[1])){names(y)[2] <- spdata@data$MeasureUnit[1]}

y = na.omit(y)

y = y[sort(y[,2], decreasing = T, index.return=T)$ix,]

y[,2] = format(y[,2], scientific = T)

if(nrow(y)>20){
  y = y[1:20,]
}

Coord.x = ceiling((1:nrow(y))/10)*1.2
Coord.y = rep(rev(1:10), ceiling(length(x)/10))[1:nrow(y)]

size.t = 0.5 + 1/ (2*max(Coord.x))

plot(-3,xlim = c(min(Coord.x)-.25,max(Coord.x)+1.5), ylim  = c(0, max(Coord.y)+3), xaxt="n", yaxt="n", bty="n")

text(Coord.x, Coord.y, labels = paste0(substr(y[,1],1,22), ":", " "), adj=0, cex = size.t)
text(Coord.x+0.75, Coord.y, labels = y[,2], adj=0, cex=size.t)
text(Coord.x[1],max(Coord.y)+1, labels = "Species", col = "darkblue", adj=0,cex=size.t)
text(Coord.x[1]+0.75,max(Coord.y)+1, labels = paste("Mean", names(y)[2]), col = "darkblue", adj=0, cex = size.t)
text(mean(Coord.x)+0.375, max(Coord.y)+3, labels = paste("Group:", title))
text(mean(Coord.x)+0.375, max(Coord.y)+2, labels = paste("Total number of species:", length(x)))
}
ick003/SpTMixture documentation built on May 18, 2019, 2:32 a.m.