Nothing
#' Plotting function for return level estimation
#'
#' @aliases ggplot.rl.evmOpt ggplot.rl.evmSim ggplot.rl.evmBoot
#' @aliases ggplot.lp.evmOpt ggplot.lp.evmSim ggplot.lp.evmBoot
#' @param data An object of class \code{rl.evmOpt}, \code{rl.evmBoot}, \code{rl.evmSim}, \code{lp.evmOpt}, \code{lp.evmBoot} or \code{lp.evmSim}, .
#' @param ptcol Colour for points. Defaults to \code{ptcol="blue"}.
#' @param col Colour for lines. Defaults to \code{col="light blue"}.
#' @param ylim Plot limits for y-axis.
#' @param fill Colour for shading polygons.
#' @param alpha Transparency.
#' @param ... Other arguments passed through to underlying plot functions.
#' @param mapping Not used.
#' @param environment Not used.
#' @param xlab Label for the x-axis.
#' @param ylab Label for the y-axis.
#' @param main Plot title.
#' @export
ggplot.rl.evmOpt <- function(data=NULL, mapping, xlab, ylab, main,
ylim = "auto",
ptcol="blue",
col="light blue",
fill="orange",
alpha=0.5,
..., environment){
p <- plot(data,plot.=FALSE)
nm <- length(names(data$obj))
nd <- dim(data$obj[[1]])[2]
ncov <- length(unlist(data$obj)) / (nm * nd)
if(ncov>1){
covnames <- dimnames(p$xm)[[2]][-(1:3)]
} else {
covnames <- ""
}
if (missing(main) || is.null(main)) {
main <- "Return Level Plot"
SetMain <- TRUE
} else {
if(length(main) == 1){
SetMain <- TRUE
} else {
SetMain <- FALSE
}
}
Plots <- list(NULL)
for(i in 1:ncov){
xm <- t(p$xm[i,,])
d <- data.frame(m=p$m, rl=xm[,1],Lower= xm[,2],Upper=xm[,3])
cov <- xm[1,-(1:3)]
if(SetMain){
if(length(covnames) == 1 && covnames != ""){
Main <- paste(main,"\n", paste(covnames,"=",signif(cov,4),collapse=", "))
} else {
Main <- main
}
} else {
Main <- main[i]
}
Plots[[i]] <- ggplot(d,aes(x=m,y=rl))+
labs(title = Main)+
geom_line() +
scale_x_continuous(trans="log",breaks=function(x) signif(exp(seq(from=log(x[1]),to=log(x[2]),len=5)),1))+
geom_polygon(data= data.frame(x=c(d$m,rev(d$m)),y=c(d$Upper,rev(d$Lower))),
aes(x=x,y=y),fill=fill,alpha=alpha)
}
if (ncov < 5) {
res <- c(Plots); names(res) <- letters[1:length(res)] # stop grid.arrange getting confused
do.call("grid.arrange", c(res, ncol=length(Plots)))
} else {
message("ggplot.rl.evmOpt produced more than 4 plots; returning invisibly.\n\nUse gridExtra::grid.arrange for plot layout.\n\n")
}
invisible(Plots)
}
#' @export
ggplot.rl.evmSim <- ggplot.rl.evmOpt
#' @export
ggplot.rl.evmBoot <- ggplot.rl.evmOpt
#' @export
ggplot.lp.evmOpt <- function(data=NULL, mapping, xlab, ylab, main,
ylim = "auto",
ptcol="blue",
col="light blue",
fill="orange",
alpha=0.5,
..., environment){
p <- plot(data,plot.=FALSE)
Plots <- list(NULL)
for(i in 1:length(p)){
d <- data.frame(x=p[[i]]$x,y=p[[i]]$y[,1],Lower = p[[i]]$y[,2],Upper=p[[i]]$y[,3])
Plots[[i]] <- ggplot(d,aes(x=x,y=y))+
labs(x=p[[i]]$CovName,y=p[[i]]$ParName)+
geom_line() +
geom_polygon(data= data.frame(x=c(d$x,rev(d$x)),y=c(d$Upper,rev(d$Lower))),
aes(x=x,y=y),fill=fill,alpha=alpha)
}
if (length(p) < 5) {
res <- c(Plots); names(res) <- letters[1:length(res)] # stop grid.arrange getting confused
do.call("grid.arrange", c(res, ncol=length(Plots)))
} else {
message("ggplot.lp.evmOpt produced more than 4 plots; returning invisibly.\n\nUse gridExtra::grid.arrange for plot layout.\n\n")
}
invisible(Plots)
}
#' @export
ggplot.lp.evmSim <- ggplot.lp.evmOpt
#' @export
ggplot.lp.evmBoot <- ggplot.lp.evmOpt
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.