From 78e36ed5661c577a16a93a6018dc05d069653828 Mon Sep 17 00:00:00 2001 From: Nan Xiao Date: Sun, 24 Mar 2024 20:39:05 -0400 Subject: [PATCH 1/3] Determine `discrete_scale()` call based on ggplot2 version --- R/discrete-aaas.R | 12 +++++-- R/discrete-cosmic.R | 12 +++++-- R/discrete-d3.R | 12 +++++-- R/discrete-flatui.R | 12 +++++-- R/discrete-frontiers.R | 12 +++++-- R/discrete-futurama.R | 12 +++++-- R/discrete-igv.R | 12 +++++-- R/discrete-jama.R | 12 +++++-- R/discrete-jco.R | 12 +++++-- R/discrete-lancet.R | 12 +++++-- R/discrete-locuszoom.R | 12 +++++-- R/discrete-nejm.R | 12 +++++-- R/discrete-npg.R | 12 +++++-- R/discrete-rickandmorty.R | 12 +++++-- R/discrete-simpsons.R | 12 +++++-- R/discrete-startrek.R | 12 +++++-- R/discrete-tron.R | 12 +++++-- R/discrete-uchicago.R | 12 +++++-- R/discrete-ucscgb.R | 12 +++++-- R/utils.R | 71 +++++++++++++++++++++++++++++++++++++++ 20 files changed, 261 insertions(+), 38 deletions(-) create mode 100644 R/utils.R diff --git a/R/discrete-aaas.R b/R/discrete-aaas.R index fe5a0fe..14e4979 100644 --- a/R/discrete-aaas.R +++ b/R/discrete-aaas.R @@ -76,7 +76,11 @@ pal_aaas <- function(palette = c("default"), alpha = 1) { #' scale_fill_aaas() scale_color_aaas <- function(palette = c("default"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("colour", palette = pal_aaas(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("colour", palette = pal_aaas(palette, alpha), ...) + } else { + discrete_scale("colour", scale_name = "aaas", palette = pal_aaas(palette, alpha), ...) + } } #' @export scale_colour_aaas @@ -88,5 +92,9 @@ scale_colour_aaas <- scale_color_aaas #' @rdname scale_aaas scale_fill_aaas <- function(palette = c("default"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("fill", palette = pal_aaas(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("fill", palette = pal_aaas(palette, alpha), ...) + } else { + discrete_scale("fill", scale_name = "aaas", palette = pal_aaas(palette, alpha), ...) + } } diff --git a/R/discrete-cosmic.R b/R/discrete-cosmic.R index 585598e..f2ca97e 100644 --- a/R/discrete-cosmic.R +++ b/R/discrete-cosmic.R @@ -87,7 +87,11 @@ scale_color_cosmic <- function( palette = c("hallmarks_light", "hallmarks_dark", "signature_substitutions"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("colour", palette = pal_cosmic(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("colour", palette = pal_cosmic(palette, alpha), ...) + } else { + discrete_scale("colour", scale_name = "cosmic", palette = pal_cosmic(palette, alpha), ...) + } } #' @export scale_colour_cosmic @@ -101,5 +105,9 @@ scale_fill_cosmic <- function( palette = c("hallmarks_light", "hallmarks_dark", "signature_substitutions"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("fill", palette = pal_cosmic(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("fill", palette = pal_cosmic(palette, alpha), ...) + } else { + discrete_scale("fill", scale_name = "cosmic", palette = pal_cosmic(palette, alpha), ...) + } } diff --git a/R/discrete-d3.R b/R/discrete-d3.R index fc89a82..9478115 100644 --- a/R/discrete-d3.R +++ b/R/discrete-d3.R @@ -93,7 +93,11 @@ pal_d3 <- function(palette = c("category10", "category20", "category20b", "categ #' p2 + scale_fill_d3(palette = "category20c") scale_color_d3 <- function(palette = c("category10", "category20", "category20b", "category20c"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("colour", palette = pal_d3(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("colour", palette = pal_d3(palette, alpha), ...) + } else { + discrete_scale("colour", scale_name = "d3", palette = pal_d3(palette, alpha), ...) + } } #' @export scale_colour_d3 @@ -105,5 +109,9 @@ scale_colour_d3 <- scale_color_d3 #' @rdname scale_d3 scale_fill_d3 <- function(palette = c("category10", "category20", "category20b", "category20c"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("fill", palette = pal_d3(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("fill", palette = pal_d3(palette, alpha), ...) + } else { + discrete_scale("fill", scale_name = "d3", palette = pal_d3(palette, alpha), ...) + } } diff --git a/R/discrete-flatui.R b/R/discrete-flatui.R index 4554b9c..f41d464 100644 --- a/R/discrete-flatui.R +++ b/R/discrete-flatui.R @@ -86,7 +86,11 @@ pal_flatui <- function(palette = c("default", "flattastic", "aussie"), alpha = 1 #' p2 + scale_fill_flatui(palette = "aussie") scale_color_flatui <- function(palette = c("default", "flattastic", "aussie"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("colour", palette = pal_flatui(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("colour", palette = pal_flatui(palette, alpha), ...) + } else { + discrete_scale("colour", scale_name = "flatui", palette = pal_flatui(palette, alpha), ...) + } } #' @export scale_colour_flatui @@ -98,5 +102,9 @@ scale_colour_flatui <- scale_color_flatui #' @rdname scale_flatui scale_fill_flatui <- function(palette = c("default", "flattastic", "aussie"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("fill", palette = pal_flatui(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("fill", palette = pal_flatui(palette, alpha), ...) + } else { + discrete_scale("fill", scale_name = "flatui", palette = pal_flatui(palette, alpha), ...) + } } diff --git a/R/discrete-frontiers.R b/R/discrete-frontiers.R index 603744f..ff328a5 100644 --- a/R/discrete-frontiers.R +++ b/R/discrete-frontiers.R @@ -79,7 +79,11 @@ pal_frontiers <- function(palette = c("default"), alpha = 1) { #' scale_fill_frontiers() scale_color_frontiers <- function(palette = c("default"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("colour", palette = pal_frontiers(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("colour", palette = pal_frontiers(palette, alpha), ...) + } else { + discrete_scale("colour", scale_name = "frontiers", palette = pal_frontiers(palette, alpha), ...) + } } #' @export scale_colour_frontiers @@ -91,5 +95,9 @@ scale_colour_frontiers <- scale_color_frontiers #' @rdname scale_frontiers scale_fill_frontiers <- function(palette = c("default"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("fill", palette = pal_frontiers(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("fill", palette = pal_frontiers(palette, alpha), ...) + } else { + discrete_scale("fill", scale_name = "frontiers", palette = pal_frontiers(palette, alpha), ...) + } } diff --git a/R/discrete-futurama.R b/R/discrete-futurama.R index 683bb46..ab85aa4 100644 --- a/R/discrete-futurama.R +++ b/R/discrete-futurama.R @@ -74,7 +74,11 @@ pal_futurama <- function(palette = c("planetexpress"), alpha = 1) { #' scale_fill_futurama() scale_color_futurama <- function(palette = c("planetexpress"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("colour", palette = pal_futurama(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("colour", palette = pal_futurama(palette, alpha), ...) + } else { + discrete_scale("colour", scale_name = "futurama", palette = pal_futurama(palette, alpha), ...) + } } #' @export scale_colour_futurama @@ -86,5 +90,9 @@ scale_colour_futurama <- scale_color_futurama #' @rdname scale_futurama scale_fill_futurama <- function(palette = c("planetexpress"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("fill", palette = pal_futurama(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("fill", palette = pal_futurama(palette, alpha), ...) + } else { + discrete_scale("fill", scale_name = "futurama", palette = pal_futurama(palette, alpha), ...) + } } diff --git a/R/discrete-igv.R b/R/discrete-igv.R index 096b62d..ad70b2e 100644 --- a/R/discrete-igv.R +++ b/R/discrete-igv.R @@ -89,7 +89,11 @@ pal_igv <- function(palette = c("default", "alternating"), alpha = 1) { #' ) scale_color_igv <- function(palette = c("default", "alternating"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("colour", palette = pal_igv(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("colour", palette = pal_igv(palette, alpha), ...) + } else { + discrete_scale("colour", scale_name = "igv", palette = pal_igv(palette, alpha), ...) + } } #' @export scale_colour_igv @@ -101,5 +105,9 @@ scale_colour_igv <- scale_color_igv #' @rdname scale_igv scale_fill_igv <- function(palette = c("default", "alternating"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("fill", palette = pal_igv(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("fill", palette = pal_igv(palette, alpha), ...) + } else { + discrete_scale("fill", scale_name = "igv", palette = pal_igv(palette, alpha), ...) + } } diff --git a/R/discrete-jama.R b/R/discrete-jama.R index 5bfa643..0d32bec 100644 --- a/R/discrete-jama.R +++ b/R/discrete-jama.R @@ -75,7 +75,11 @@ pal_jama <- function(palette = c("default"), alpha = 1) { #' scale_fill_jama() scale_color_jama <- function(palette = c("default"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("colour", palette = pal_jama(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("colour", palette = pal_jama(palette, alpha), ...) + } else { + discrete_scale("colour", scale_name = "jama", palette = pal_jama(palette, alpha), ...) + } } #' @export scale_colour_jama @@ -87,5 +91,9 @@ scale_colour_jama <- scale_color_jama #' @rdname scale_jama scale_fill_jama <- function(palette = c("default"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("fill", palette = pal_jama(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("fill", palette = pal_jama(palette, alpha), ...) + } else { + discrete_scale("fill", scale_name = "jama", palette = pal_jama(palette, alpha), ...) + } } diff --git a/R/discrete-jco.R b/R/discrete-jco.R index f987737..0246c06 100644 --- a/R/discrete-jco.R +++ b/R/discrete-jco.R @@ -74,7 +74,11 @@ pal_jco <- function(palette = c("default"), alpha = 1) { #' scale_fill_jco() scale_color_jco <- function(palette = c("default"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("colour", palette = pal_jco(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("colour", palette = pal_jco(palette, alpha), ...) + } else { + discrete_scale("colour", scale_name = "jco", palette = pal_jco(palette, alpha), ...) + } } #' @export scale_colour_jco @@ -86,5 +90,9 @@ scale_colour_jco <- scale_color_jco #' @rdname scale_jco scale_fill_jco <- function(palette = c("default"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("fill", palette = pal_jco(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("fill", palette = pal_jco(palette, alpha), ...) + } else { + discrete_scale("fill", scale_name = "jco", palette = pal_jco(palette, alpha), ...) + } } diff --git a/R/discrete-lancet.R b/R/discrete-lancet.R index f48d0d0..48a909d 100644 --- a/R/discrete-lancet.R +++ b/R/discrete-lancet.R @@ -75,7 +75,11 @@ pal_lancet <- function(palette = c("lanonc"), alpha = 1) { #' scale_fill_lancet() scale_color_lancet <- function(palette = c("lanonc"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("colour", palette = pal_lancet(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("colour", palette = pal_lancet(palette, alpha), ...) + } else { + discrete_scale("colour", scale_name = "lancet", palette = pal_lancet(palette, alpha), ...) + } } #' @export scale_colour_lancet @@ -87,5 +91,9 @@ scale_colour_lancet <- scale_color_lancet #' @rdname scale_lancet scale_fill_lancet <- function(palette = c("lanonc"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("fill", palette = pal_lancet(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("fill", palette = pal_lancet(palette, alpha), ...) + } else { + discrete_scale("fill", scale_name = "lancet", palette = pal_lancet(palette, alpha), ...) + } } diff --git a/R/discrete-locuszoom.R b/R/discrete-locuszoom.R index dfd4773..3178517 100644 --- a/R/discrete-locuszoom.R +++ b/R/discrete-locuszoom.R @@ -79,7 +79,11 @@ pal_locuszoom <- function(palette = c("default"), alpha = 1) { #' scale_fill_locuszoom() scale_color_locuszoom <- function(palette = c("default"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("colour", palette = pal_locuszoom(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("colour", palette = pal_locuszoom(palette, alpha), ...) + } else { + discrete_scale("colour", scale_name = "locuszoom", palette = pal_locuszoom(palette, alpha), ...) + } } #' @export scale_colour_locuszoom @@ -91,5 +95,9 @@ scale_colour_locuszoom <- scale_color_locuszoom #' @rdname scale_locuszoom scale_fill_locuszoom <- function(palette = c("default"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("fill", palette = pal_locuszoom(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("fill", palette = pal_locuszoom(palette, alpha), ...) + } else { + discrete_scale("fill", scale_name = "locuszoom", palette = pal_locuszoom(palette, alpha), ...) + } } diff --git a/R/discrete-nejm.R b/R/discrete-nejm.R index d6849bd..79191e3 100644 --- a/R/discrete-nejm.R +++ b/R/discrete-nejm.R @@ -75,7 +75,11 @@ pal_nejm <- function(palette = c("default"), alpha = 1) { #' scale_fill_nejm() scale_color_nejm <- function(palette = c("default"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("colour", palette = pal_nejm(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("colour", palette = pal_nejm(palette, alpha), ...) + } else { + discrete_scale("colour", scale_name = "nejm", palette = pal_nejm(palette, alpha), ...) + } } #' @export scale_colour_nejm @@ -87,5 +91,9 @@ scale_colour_nejm <- scale_color_nejm #' @rdname scale_nejm scale_fill_nejm <- function(palette = c("default"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("fill", palette = pal_nejm(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("fill", palette = pal_nejm(palette, alpha), ...) + } else { + discrete_scale("fill", scale_name = "nejm", palette = pal_nejm(palette, alpha), ...) + } } diff --git a/R/discrete-npg.R b/R/discrete-npg.R index 24d1789..0d28077 100644 --- a/R/discrete-npg.R +++ b/R/discrete-npg.R @@ -75,7 +75,11 @@ pal_npg <- function(palette = c("nrc"), alpha = 1) { #' scale_fill_npg() scale_color_npg <- function(palette = c("nrc"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("colour", palette = pal_npg(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("colour", palette = pal_npg(palette, alpha), ...) + } else { + discrete_scale("colour", scale_name = "npg", palette = pal_npg(palette, alpha), ...) + } } #' @export scale_colour_npg @@ -87,5 +91,9 @@ scale_colour_npg <- scale_color_npg #' @rdname scale_npg scale_fill_npg <- function(palette = c("nrc"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("fill", palette = pal_npg(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("fill", palette = pal_npg(palette, alpha), ...) + } else { + discrete_scale("fill", scale_name = "npg", palette = pal_npg(palette, alpha), ...) + } } diff --git a/R/discrete-rickandmorty.R b/R/discrete-rickandmorty.R index ba7d4cc..157e8c6 100644 --- a/R/discrete-rickandmorty.R +++ b/R/discrete-rickandmorty.R @@ -74,7 +74,11 @@ pal_rickandmorty <- function(palette = c("schwifty"), alpha = 1) { #' scale_fill_rickandmorty() scale_color_rickandmorty <- function(palette = c("schwifty"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("colour", palette = pal_rickandmorty(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("colour", palette = pal_rickandmorty(palette, alpha), ...) + } else { + discrete_scale("colour", scale_name = "rickandmorty", palette = pal_rickandmorty(palette, alpha), ...) + } } #' @export scale_colour_rickandmorty @@ -86,5 +90,9 @@ scale_colour_rickandmorty <- scale_color_rickandmorty #' @rdname scale_rickandmorty scale_fill_rickandmorty <- function(palette = c("schwifty"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("fill", palette = pal_rickandmorty(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("fill", palette = pal_rickandmorty(palette, alpha), ...) + } else { + discrete_scale("fill", scale_name = "rickandmorty", palette = pal_rickandmorty(palette, alpha), ...) + } } diff --git a/R/discrete-simpsons.R b/R/discrete-simpsons.R index 07c5b68..a92316d 100644 --- a/R/discrete-simpsons.R +++ b/R/discrete-simpsons.R @@ -74,7 +74,11 @@ pal_simpsons <- function(palette = c("springfield"), alpha = 1) { #' scale_fill_simpsons() scale_color_simpsons <- function(palette = c("springfield"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("colour", palette = pal_simpsons(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("colour", palette = pal_simpsons(palette, alpha), ...) + } else { + discrete_scale("colour", scale_name = "simpsons", palette = pal_simpsons(palette, alpha), ...) + } } #' @export scale_colour_simpsons @@ -86,5 +90,9 @@ scale_colour_simpsons <- scale_color_simpsons #' @rdname scale_simpsons scale_fill_simpsons <- function(palette = c("springfield"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("fill", palette = pal_simpsons(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("fill", palette = pal_simpsons(palette, alpha), ...) + } else { + discrete_scale("fill", scale_name = "simpsons", palette = pal_simpsons(palette, alpha), ...) + } } diff --git a/R/discrete-startrek.R b/R/discrete-startrek.R index e7572d1..2b53a86 100644 --- a/R/discrete-startrek.R +++ b/R/discrete-startrek.R @@ -74,7 +74,11 @@ pal_startrek <- function(palette = c("uniform"), alpha = 1) { #' scale_fill_startrek() scale_color_startrek <- function(palette = c("uniform"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("colour", palette = pal_startrek(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("colour", palette = pal_startrek(palette, alpha), ...) + } else { + discrete_scale("colour", scale_name = "startrek", palette = pal_startrek(palette, alpha), ...) + } } #' @export scale_colour_startrek @@ -86,5 +90,9 @@ scale_colour_startrek <- scale_color_startrek #' @rdname scale_startrek scale_fill_startrek <- function(palette = c("uniform"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("fill", palette = pal_startrek(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("fill", palette = pal_startrek(palette, alpha), ...) + } else { + discrete_scale("fill", scale_name = "startrek", palette = pal_startrek(palette, alpha), ...) + } } diff --git a/R/discrete-tron.R b/R/discrete-tron.R index c6d0526..cfb0cbd 100644 --- a/R/discrete-tron.R +++ b/R/discrete-tron.R @@ -81,7 +81,11 @@ pal_tron <- function(palette = c("legacy"), alpha = 1) { #' scale_fill_tron() scale_color_tron <- function(palette = c("legacy"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("colour", palette = pal_tron(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("colour", palette = pal_tron(palette, alpha), ...) + } else { + discrete_scale("colour", scale_name = "tron", palette = pal_tron(palette, alpha), ...) + } } #' @export scale_colour_tron @@ -93,5 +97,9 @@ scale_colour_tron <- scale_color_tron #' @rdname scale_tron scale_fill_tron <- function(palette = c("legacy"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("fill", palette = pal_tron(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("fill", palette = pal_tron(palette, alpha), ...) + } else { + discrete_scale("fill", scale_name = "tron", palette = pal_tron(palette, alpha), ...) + } } diff --git a/R/discrete-uchicago.R b/R/discrete-uchicago.R index cc24fc6..ac360e0 100644 --- a/R/discrete-uchicago.R +++ b/R/discrete-uchicago.R @@ -88,7 +88,11 @@ pal_uchicago <- function(palette = c("default", "light", "dark"), alpha = 1) { #' p2 + scale_fill_uchicago(palette = "dark") scale_color_uchicago <- function(palette = c("default", "light", "dark"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("colour", palette = pal_uchicago(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("colour", palette = pal_uchicago(palette, alpha), ...) + } else { + discrete_scale("colour", scale_name = "uchicago", palette = pal_uchicago(palette, alpha), ...) + } } #' @export scale_colour_uchicago @@ -100,5 +104,9 @@ scale_colour_uchicago <- scale_color_uchicago #' @rdname scale_uchicago scale_fill_uchicago <- function(palette = c("default", "light", "dark"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("fill", palette = pal_uchicago(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("fill", palette = pal_uchicago(palette, alpha), ...) + } else { + discrete_scale("fill", scale_name = "uchicago", palette = pal_uchicago(palette, alpha), ...) + } } diff --git a/R/discrete-ucscgb.R b/R/discrete-ucscgb.R index 86ff1c6..50352e9 100644 --- a/R/discrete-ucscgb.R +++ b/R/discrete-ucscgb.R @@ -74,7 +74,11 @@ pal_ucscgb <- function(palette = c("default"), alpha = 1) { #' scale_fill_ucscgb() scale_color_ucscgb <- function(palette = c("default"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("colour", palette = pal_ucscgb(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("colour", palette = pal_ucscgb(palette, alpha), ...) + } else { + discrete_scale("colour", scale_name = "ucscgb", palette = pal_ucscgb(palette, alpha), ...) + } } #' @export scale_colour_ucscgb @@ -86,5 +90,9 @@ scale_colour_ucscgb <- scale_color_ucscgb #' @rdname scale_ucscgb scale_fill_ucscgb <- function(palette = c("default"), alpha = 1, ...) { palette <- match.arg(palette) - discrete_scale("fill", palette = pal_ucscgb(palette, alpha), ...) + if (is_ggplot2_350()) { + discrete_scale("fill", palette = pal_ucscgb(palette, alpha), ...) + } else { + discrete_scale("fill", scale_name = "ucscgb", palette = pal_ucscgb(palette, alpha), ...) + } } diff --git a/R/utils.R b/R/utils.R new file mode 100644 index 0000000..9a244f8 --- /dev/null +++ b/R/utils.R @@ -0,0 +1,71 @@ +# These functions: +# - `is_installed()` +# - `get_package_version()` +# - `system_file_cached()` +# were sourced from the shiny package version 1.8.0, available at +# . +# +# For the original version of these functions, please see: +# . +# +# The shiny package is licensed under the GNU General Public License version 3. +# For more details on the license, see +# . + +is_installed <- function(pkg, version = NULL) { + installed <- isNamespaceLoaded(pkg) || nzchar(system_file_cached(package = pkg)) + + if (is.null(version)) { + return(installed) + } + + if (!is.character(version) && !inherits(version, "numeric_version")) { + # Avoid https://bugs.r-project.org/show_bug.cgi?id=18548 + alert <- if (identical(Sys.getenv("TESTTHAT"), "true")) stop else warning + alert("`version` must be a character string or a `package_version` or `numeric_version` object.") + + version <- numeric_version(sprintf("%0.9g", version)) + } + + installed && isTRUE(get_package_version(pkg) >= version) +} + +get_package_version <- function(pkg) { + # `utils::packageVersion()` can be slow, so first try the fast path of + # checking if the package is already loaded. + ns <- .getNamespace(pkg) + if (is.null(ns)) { + utils::packageVersion(pkg) + } else { + as.package_version(ns$.__NAMESPACE__.$spec[["version"]]) + } +} + +# A wrapper for `system.file()`, which caches the package path because +# `system.file()` can be slow. If a package is not installed, the result won't +# be cached. +system_file_cached <- local({ + pkg_dir_cache <- character() + + function(..., package = "base") { + if (!is.null(names(list(...)))) { + stop("All arguments other than `package` must be unnamed.") + } + + not_cached <- is.na(match(package, names(pkg_dir_cache))) + if (not_cached) { + pkg_dir <- system.file(package = package) + if (nzchar(pkg_dir)) { + pkg_dir_cache[[package]] <<- pkg_dir + } + } else { + pkg_dir <- pkg_dir_cache[[package]] + } + + file.path(pkg_dir, ...) + } +}) + +is_ggplot2_350 <- function() { + is_installed("ggplot2", version = "3.5.0") +} From 7288dd5483a535a94601873e5ec7f923443a6ae1 Mon Sep 17 00:00:00 2001 From: Nan Xiao Date: Sun, 24 Mar 2024 20:40:50 -0400 Subject: [PATCH 2/3] Update news for v3.0.3 --- NEWS.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/NEWS.md b/NEWS.md index 3e919f5..eab2a20 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,11 @@ +# ggsci 3.0.3 + +## Improvements + +- Detect ggplot2 version at runtime to determine if the argument `scale_name` + is needed for all `discrete_scale()` calls. This ensures ggsci always works + regardless of the ggplot2 version installed (thanks, @flyingicedragon, #29). + # ggsci 3.0.2 ## Improvements From 6eb7d074e2538d37820f7b20656d34c398e51ef5 Mon Sep 17 00:00:00 2001 From: Nan Xiao Date: Sun, 24 Mar 2024 20:41:14 -0400 Subject: [PATCH 3/3] Increment version number to 3.0.3 --- DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 746f750..5bb4c75 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: ggsci Type: Package Title: Scientific Journal and Sci-Fi Themed Color Palettes for 'ggplot2' -Version: 3.0.2 +Version: 3.0.3 Authors@R: c( person("Nan", "Xiao", email = "me@nanx.me", role = c("aut", "cre"), comment = c(ORCID = "0000-0002-0250-5673")),