diff --git a/.buildlibrary b/.buildlibrary index de66603..be92351 100644 --- a/.buildlibrary +++ b/.buildlibrary @@ -1,4 +1,4 @@ -ValidationKey: '29083776' +ValidationKey: '29284320' AcceptedWarnings: - 'Warning: package ''.*'' was built under R version' - 'Warning: namespace ''.*'' is not available and has been replaced' diff --git a/CITATION.cff b/CITATION.cff index bf2a452..3e241d0 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -2,8 +2,8 @@ cff-version: 1.2.0 message: If you use this software, please cite it using the metadata from this file. type: software title: 'mip: Comparison of multi-model runs' -version: 0.147.2 -date-released: '2024-02-05' +version: 0.148.2 +date-released: '2024-02-07' abstract: Package contains generic functions to produce comparison plots of multi-model runs. authors: diff --git a/DESCRIPTION b/DESCRIPTION index a08fe6c..1bfe8df 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,8 +1,8 @@ Type: Package Package: mip Title: Comparison of multi-model runs -Version: 0.147.2 -Date: 2024-02-05 +Version: 0.148.2 +Date: 2024-02-07 Authors@R: c( person("David", "Klein", , "dklein@pik-potsdam.de", role = c("aut", "cre")), person("Jan Philipp", "Dietrich", , "dietrich@pik-potsdam.de", role = "aut"), diff --git a/R/showMultiLinePlots.R b/R/showMultiLinePlots.R index 57e6b52..fcd45c3 100644 --- a/R/showMultiLinePlots.R +++ b/R/showMultiLinePlots.R @@ -7,6 +7,7 @@ #' \code{variable}. The plots arranged and shown. #' #' @param vars A character vector. The variables to be plotted. +#' @param nrowNum An integer value. Number of rows of the panel figures #' @inheritParams showLinePlots #' @return \code{NULL} is returned invisible. #' @section Example Plots: @@ -27,6 +28,7 @@ #' @importFrom ggplot2 ylim showMultiLinePlots <- function( data, vars, scales = "free_y", + nrowNum = 1, mainReg = getOption("mip.mainReg") ) { @@ -62,22 +64,23 @@ showMultiLinePlots <- function( } label <- paste0("(", paste0(levels(d$unit), collapse = ","), ")") - + p1 <- dMainScen %>% ggplot(aes(.data$period, .data$value)) + geom_line(aes(linetype = .data$scenario)) + geom_point(data = dMainHist, aes(shape = .data$model)) + geom_line(data = dMainHist, aes(group = paste0(.data$model, .data$region)), alpha = 0.5) + - facet_wrap(vars(.data$variable), scales = scales) + + facet_wrap(vars(.data$variable), scales = scales, nrow = nrowNum) + theme_minimal() + expand_limits(y = 0) + ylab(label) + p2 <- dRegiScen %>% ggplot(aes(.data$period, .data$value, color = .data$region)) + geom_line(aes(linetype = .data$scenario)) + geom_point(data = dRegiHist, aes(shape = .data$model)) + geom_line(data = dRegiHist, aes(group = paste0(.data$model, .data$region)), alpha = 0.5) + - facet_wrap(vars(.data$variable), scales = scales) + + facet_wrap(vars(.data$variable), scales = scales, nrow = nrowNum) + theme_minimal() + scale_color_manual(values = plotstyle(regions)) + expand_limits(y = 0) + diff --git a/R/showMultiLinePlotsByVariable.R b/R/showMultiLinePlotsByVariable.R index 805ea95..09b3b1e 100644 --- a/R/showMultiLinePlotsByVariable.R +++ b/R/showMultiLinePlotsByVariable.R @@ -13,6 +13,9 @@ #' @param showHistorical A single logical value. Should historical data be #' shown? It is not recommended to set this to \code{TRUE} as the resulting #' plot we probably be quite confusing. +#' @param showGlobal A single logical value. Should global data be +#' shown? Default is false to save space in pdf +#' @param nrowNum An integer value. Number of rows of the panel figures #' @param histRefModel A named character vector identifying the unique model to #' be chosen for historical data. Use \code{options(mip.histRefModel=)} #' to set globally. @@ -42,6 +45,8 @@ showMultiLinePlotsByVariable <- function( data, vars, xVar, scales = "free_y", showHistorical = FALSE, + showGlobal = FALSE, + nrowNum = 1, mainReg = getOption("mip.mainReg"), histRefModel = getOption("mip.histRefModel"), yearsByVariable = getOption("mip.yearsBarPlot") @@ -92,39 +97,46 @@ showMultiLinePlotsByVariable <- function( label <- paste0("(", paste0(levels(d$unit), collapse = ","), ")") xLabel <- paste0(xVar, " (", paste0(levels(d$unit.x), collapse = ","), ")") - - p1 <- dMainScen %>% - ggplot(aes(.data$value.x, .data$value)) + - geom_line(aes(linetype = .data$scenario)) + - facet_wrap(vars(.data$variable), scales = scales) + - theme_minimal() + - expand_limits(y = 0) + - ylab(label) + xlab(xLabel) + + if (showGlobal) { + p1 <- dMainScen %>% + ggplot(aes(.data$value.x, .data$value)) + + geom_line(aes(linetype = .data$scenario)) + + facet_wrap(vars(.data$variable), scales = scales, nrow = nrowNum) + + theme_minimal() + + expand_limits(y = 0) + + ylab(label) + xlab(xLabel) + } p2 <- dRegiScen %>% ggplot(aes(.data$value.x, .data$value, color = .data$region)) + geom_line(aes(linetype = .data$scenario)) + - facet_wrap(vars(.data$variable), scales = scales) + + facet_wrap(vars(.data$variable), scales = scales, nrow = nrowNum) + theme_minimal() + scale_color_manual(values = plotstyle(regions)) + expand_limits(y = 0) + ylab(label) + xlab(xLabel) + if (showHistorical) { stopifnot(xVar %in% names(histRefModel)) - p1 <- p1 + - geom_point(data = dMainHist, aes(shape = .data$model)) + - geom_line(data = dMainHist, aes(group = paste0(.data$model, .data$region)), alpha = 0.5) + if (showGlobal) { + p1 <- p1 + + geom_point(data = dMainHist, aes(shape = .data$model)) + + geom_line(data = dMainHist, aes(group = paste0(.data$model, .data$region)), alpha = 0.5) + } p2 <- p2 + geom_point(data = dRegiHist, aes(shape = .data$model)) + geom_line(data = dRegiHist, aes(group = paste0(.data$model, .data$region)), alpha = 0.5) } # Add markers for certain years. if (length(yearsByVariable) > 0) { - p1 <- p1 + - geom_point( - data = dMainScen %>% - filter(.data$period %in% .env$yearsByVariable) %>% - mutate(year = factor(.data$period)), - mapping = aes(.data$value.x, .data$value, shape = .data$year)) + if (showGlobal) { + p1 <- p1 + + geom_point( + data = dMainScen %>% + filter(.data$period %in% .env$yearsByVariable) %>% + mutate(year = factor(.data$period)), + mapping = aes(.data$value.x, .data$value, shape = .data$year)) + } p2 <- p2 + geom_point( data = dRegiScen %>% @@ -134,8 +146,10 @@ showMultiLinePlotsByVariable <- function( } # Show plots. - print(p1) - cat("\n\n") + if (showGlobal) { + print(p1) + cat("\n\n") + } print(p2) cat("\n\n") diff --git a/README.md b/README.md index 651f341..4fbf176 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Comparison of multi-model runs -R package **mip**, version **0.147.2** +R package **mip**, version **0.148.2** [![CRAN status](https://www.r-pkg.org/badges/version/mip)](https://cran.r-project.org/package=mip) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1158586.svg)](https://doi.org/10.5281/zenodo.1158586) [![R build status](https://github.com/pik-piam/mip/workflows/check/badge.svg)](https://github.com/pik-piam/mip/actions) [![codecov](https://codecov.io/gh/pik-piam/mip/branch/master/graph/badge.svg)](https://app.codecov.io/gh/pik-piam/mip) [![r-universe](https://pik-piam.r-universe.dev/badges/mip)](https://pik-piam.r-universe.dev/builds) @@ -47,7 +47,7 @@ In case of questions / problems please contact David Klein , R package version 0.147.2, . +Klein D, Dietrich J, Baumstark L, Humpenoeder F, Stevanovic M, Wirth S, Führlich P, Richters O (2024). _mip: Comparison of multi-model runs_. doi:10.5281/zenodo.1158586 , R package version 0.148.2, . A BibTeX entry for LaTeX users is @@ -56,7 +56,7 @@ A BibTeX entry for LaTeX users is title = {mip: Comparison of multi-model runs}, author = {David Klein and Jan Philipp Dietrich and Lavinia Baumstark and Florian Humpenoeder and Miodrag Stevanovic and Stephen Wirth and Pascal Führlich and Oliver Richters}, year = {2024}, - note = {R package version 0.147.2}, + note = {R package version 0.148.2}, doi = {10.5281/zenodo.1158586}, url = {https://github.com/pik-piam/mip}, } diff --git a/man/showMultiLinePlots.Rd b/man/showMultiLinePlots.Rd index 8a39f6b..bb4f68c 100644 --- a/man/showMultiLinePlots.Rd +++ b/man/showMultiLinePlots.Rd @@ -8,6 +8,7 @@ showMultiLinePlots( data, vars, scales = "free_y", + nrowNum = 1, mainReg = getOption("mip.mainReg") ) } @@ -19,6 +20,8 @@ quitte object.} \item{scales}{A single string. choose either \code{"free_y"} or \code{"fixed"}.} +\item{nrowNum}{An integer value. Number of rows of the panel figures} + \item{mainReg}{A single string. The plots for this region are shown enlarged. Use \code{options(mip.mainReg=)} to set globally.} } diff --git a/man/showMultiLinePlotsByVariable.Rd b/man/showMultiLinePlotsByVariable.Rd index 66d4827..2d3a04a 100644 --- a/man/showMultiLinePlotsByVariable.Rd +++ b/man/showMultiLinePlotsByVariable.Rd @@ -10,6 +10,8 @@ showMultiLinePlotsByVariable( xVar, scales = "free_y", showHistorical = FALSE, + showGlobal = FALSE, + nrowNum = 1, mainReg = getOption("mip.mainReg"), histRefModel = getOption("mip.histRefModel"), yearsByVariable = getOption("mip.yearsBarPlot") @@ -29,6 +31,11 @@ quitte object.} shown? It is not recommended to set this to \code{TRUE} as the resulting plot we probably be quite confusing.} +\item{showGlobal}{A single logical value. Should global data be +shown? Default is false to save space in pdf} + +\item{nrowNum}{An integer value. Number of rows of the panel figures} + \item{mainReg}{A single string. The plots for this region are shown enlarged. Use \code{options(mip.mainReg=)} to set globally.}