From f8b987fb3910dc64a4c06fe9abf4009c7aa894fa Mon Sep 17 00:00:00 2001 From: aho Date: Mon, 7 Jun 2021 17:21:45 +0200 Subject: [PATCH 1/2] Add parameter 'contour_draw_label' to decide whether to draw the contour labels or not. --- R/PlotEquiMap.R | 11 +++++++++-- man/PlotEquiMap.Rd | 4 ++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/R/PlotEquiMap.R b/R/PlotEquiMap.R index 6ee7140..0e371bd 100644 --- a/R/PlotEquiMap.R +++ b/R/PlotEquiMap.R @@ -75,6 +75,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 @@ -216,7 +218,7 @@ PlotEquiMap <- function(var, lon, lat, varu = NULL, varv = NULL, coast_color = NULL, coast_width = 1, 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", @@ -460,6 +462,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 +748,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) } # diff --git a/man/PlotEquiMap.Rd b/man/PlotEquiMap.Rd index fbd7042..bac7632 100644 --- a/man/PlotEquiMap.Rd +++ b/man/PlotEquiMap.Rd @@ -30,6 +30,7 @@ PlotEquiMap( contour_lwd = 0.5, contour_color = "black", contour_lty = 1, + contour_draw_label = TRUE, contour_label_scale = 1, dots = NULL, dot_symbol = 4, @@ -158,6 +159,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.} -- GitLab From 9ce565fc77d019ba80410934bdf9cbed4e4f910b Mon Sep 17 00:00:00 2001 From: aho Date: Mon, 7 Jun 2021 18:09:46 +0200 Subject: [PATCH 2/2] Add parameter 'lake_color' to specify lake color when filled.continents = T --- R/PlotEquiMap.R | 18 ++++++++++++++++-- man/PlotEquiMap.Rd | 5 +++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/R/PlotEquiMap.R b/R/PlotEquiMap.R index 0e371bd..8892985 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'. @@ -215,7 +218,7 @@ 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_draw_label = TRUE, contour_label_scale = 1, @@ -426,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]) { @@ -791,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 bac7632..2673353 100644 --- a/man/PlotEquiMap.Rd +++ b/man/PlotEquiMap.Rd @@ -25,6 +25,7 @@ PlotEquiMap( filled.continents = NULL, coast_color = NULL, coast_width = 1, + lake_color = NULL, contours = NULL, brks2 = NULL, contour_lwd = 0.5, @@ -143,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'.} -- GitLab