#' Continuous or categorical legend
#'
#' @param b breaks or data range
#' @param pal color pallette
#' @param leg.title legend title
#' @keywords "water quality"
#' @export
#' @return This function returns water quality dataset from the SFWMD monitoring network (https://apps.sfwmd.gov/WAB/EnvironmentalMonitoring/index.html). This function assumes some familiarity with the District monitoring network and data management. .
#' @importFrom graphics rasterImage text
#' @importFrom grDevices as.raster
leg.fun=function(b,pal,leg.title,
top.val=0.8,bot.val=0.2,mid.v.val=NULL,
x.max=0.3,x.min=0.1,mid.val=NULL,
txt.offset.val=-0.01,txt.y=NULL,leg.txt=NULL,
txt.cex=0.75,txt.adj=0,txt.pos=4,txt.offset=0.5,
title.cex=0.8,title.pos=3,title.adj=0,
title.x=NULL,title.y=NULL,labs=NULL,n.bks=NULL,
leg.type=c("continuous","categorical"), ...){
l.b=if(is.null(b)==T){n.bks}else{length(b)}
labs=if(is.null(labs)==T){c(paste0("< ",b[2]),paste(b[2:(l.b-2)],b[3:(l.b-1)],sep=" - "),paste(paste0(">",b[(l.b-1)])))}else{labs}
n.bks=if(is.null(n.bks)==T){length(b)-1}else{n.bks}
mid.v.val=if(is.null(mid.v.val)==T){bot.val+(top.val-bot.val)/2}else{mid.v.val}
mid.val=if(is.null(mid.val)==T){x.min+(x.max-x.min)/2}else{mid.val}
if(leg.type=="continuous"){
legend_image=as.raster(matrix(rev(pal),ncol=1))
rasterImage(legend_image,x.min,bot.val,x.max,top.val)
txt.y=if(is.null(txt.y)==T){c(bot.val,top.val)}else(txt.y)
leg.txt=if(is.null(leg.txt)==T){format(c(min(b),max(b)))}else(leg.txt)
text(x=x.max, y = txt.y, labels =leg.txt,cex=txt.cex,adj=txt.adj,pos=txt.pos,offset=txt.offset, ...)
}
if(leg.type=="categorical"){
bx.val= seq(bot.val,top.val,(top.val-bot.val)/n.bks)
rect(x.min,bx.val[1:n.bks],x.max,bx.val[2:(n.bks+1)],col=rev(pal),lty=0)
text(y=bx.val[2:(n.bks+1)]-c(mean(diff(bx.val[2:(n.bks+1)]))/2), x = x.max,
labels = rev(labs),cex=txt.cex,xpd=NA,pos=txt.pos,adj=txt.adj,...)
}
title.x=if(is.null(title.x)==T){mid.val}else{title.x}
title.y=if(is.null(title.y)==T){top.val}else{title.y}
text(x=title.x,y=title.y,leg.title,adj=title.adj,cex=title.cex,pos=title.pos,xpd=NA)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.