diff --git a/R/PlotEquiMap.R b/R/PlotEquiMap.R index 6ee7140e6767bf4f3a7367f049bb124f402efa7f..8892985735355aa7bd9946529a7089000c3df8b5 100644 --- a/R/PlotEquiMap.R +++ b/R/PlotEquiMap.R @@ -64,6 +64,9 @@ #' Takes the value gray(0.5) by default. #'@param coast_width Line width of the coast line of the drawn projected #' continents. Takes the value 1 by default. +#'@param lake_color Colour of the lake or other water body inside continents. +#' It is only functional when 'filled.continents = TRUE'. The default value is +#' 'white'. #'@param contours Array of same dimensions as 'var' to be added to the plot #' and displayed with contours. Parameter 'brks2' is required to define the #' magnitude breaks for each contour curve. Disregarded if 'square = FALSE'. @@ -75,6 +78,8 @@ #' and 'brks2', or if 'square = FALSE'. #'@param contour_lty Line type of the contour curves. Takes 1 (solid) by #' default. See help on 'lty' in par() for other accepted values. +#'@param contour_draw_label A logical value indicating whether to draw the +#' contour labels or not. The default value is TRUE. #'@param contour_label_scale Scale factor for the superimposed labels when #' drawing contour levels. #'@param dots Array of same dimensions as 'var' or with dimensions @@ -213,10 +218,10 @@ PlotEquiMap <- function(var, lon, lat, varu = NULL, varv = NULL, triangle_ends = NULL, col_inf = NULL, col_sup = NULL, colNA = NULL, color_fun = clim.palette(), square = TRUE, filled.continents = NULL, - coast_color = NULL, coast_width = 1, + coast_color = NULL, coast_width = 1, lake_color = NULL, contours = NULL, brks2 = NULL, contour_lwd = 0.5, contour_color = 'black', contour_lty = 1, - contour_label_scale = 1, + contour_draw_label = TRUE, contour_label_scale = 1, dots = NULL, dot_symbol = 4, dot_size = 1, arr_subsamp = floor(length(lon) / 30), arr_scale = 1, arr_ref_len = 15, arr_units = "m/s", @@ -424,6 +429,17 @@ PlotEquiMap <- function(var, lon, lat, varu = NULL, varv = NULL, stop("Parameter 'coast_width' must be numeric.") } + # Check lake_color + if (is.null(lake_color)) { + if (filled.continents) { + lake_color <- 'white' + } + } else { + if (!.IsColor(coast_color)) { + stop("Parameter 'coast_color' must be a valid colour identifier.") + } + } + # Check contours if (!is.null(contours)) { if (dim(contours)[1] != dims[1] || dim(contours)[2] != dims[2]) { @@ -460,6 +476,11 @@ PlotEquiMap <- function(var, lon, lat, varu = NULL, varv = NULL, stop("Parameter 'contour_lty' must be either a number or a character string.") } + # Check contour_draw_label + if (!is.logical(contour_draw_label)) { + stop("Parameter 'contour_draw_label' must be logical.") + } + # Check contour_label_scale if (!is.numeric(contour_label_scale)) { stop("Parameter 'contour_label_scale' must be numeric.") @@ -741,7 +762,7 @@ PlotEquiMap <- function(var, lon, lat, varu = NULL, varv = NULL, # labcex = cex_axes_labels, labcex = contour_label_scale * par("cex"), lwd = contour_lwd, lty = contour_lty, - col = contour_color) + col = contour_color, drawlabels = contour_draw_label) } # @@ -784,7 +805,7 @@ PlotEquiMap <- function(var, lon, lat, varu = NULL, varv = NULL, LAT0 = mean(ylat), LATS = ylat, LONS = xlon) lakes <- which(coastmap$STROKES$col == "blue") coastmap$STROKES$col[which(coastmap$STROKES$col != "blue")] <- continent_color - coastmap$STROKES$col[lakes] <- "white" + coastmap$STROKES$col[lakes] <- lake_color #"white" par(new = TRUE) GEOmap::plotGEOmap(coastmap, PROJ = proj, border = coast_color, add = TRUE, lwd = coast_width) diff --git a/man/PlotEquiMap.Rd b/man/PlotEquiMap.Rd index fbd7042faf44c2629d5c49f975429f0804ff0398..26733533cb69951f08a901f22c985aae0b152a42 100644 --- a/man/PlotEquiMap.Rd +++ b/man/PlotEquiMap.Rd @@ -25,11 +25,13 @@ PlotEquiMap( filled.continents = NULL, coast_color = NULL, coast_width = 1, + lake_color = NULL, contours = NULL, brks2 = NULL, contour_lwd = 0.5, contour_color = "black", contour_lty = 1, + contour_draw_label = TRUE, contour_label_scale = 1, dots = NULL, dot_symbol = 4, @@ -142,6 +144,10 @@ Takes the value gray(0.5) by default.} \item{coast_width}{Line width of the coast line of the drawn projected continents. Takes the value 1 by default.} +\item{lake_color}{Colour of the lake or other water body inside continents. +It is only functional when 'filled.continents = TRUE'. The default value is +'white'.} + \item{contours}{Array of same dimensions as 'var' to be added to the plot and displayed with contours. Parameter 'brks2' is required to define the magnitude breaks for each contour curve. Disregarded if 'square = FALSE'.} @@ -158,6 +164,9 @@ and 'brks2', or if 'square = FALSE'.} \item{contour_lty}{Line type of the contour curves. Takes 1 (solid) by default. See help on 'lty' in par() for other accepted values.} +\item{contour_draw_label}{A logical value indicating whether to draw the +contour labels or not. The default value is TRUE.} + \item{contour_label_scale}{Scale factor for the superimposed labels when drawing contour levels.}