Skip to content

Commit

Permalink
Merge pull request #30 from nanxstats/ggplot2-compat
Browse files Browse the repository at this point in the history
Improve backward compatibility with ggplot2 < 3.5.0
  • Loading branch information
nanxstats committed Mar 25, 2024
2 parents d610fc9 + 6eb7d07 commit 0924fd7
Show file tree
Hide file tree
Showing 22 changed files with 270 additions and 39 deletions.
2 changes: 1 addition & 1 deletion DESCRIPTION
Original file line number Diff line number Diff line change
@@ -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")),
Expand Down
8 changes: 8 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
12 changes: 10 additions & 2 deletions R/discrete-aaas.R
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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), ...)
}
}
12 changes: 10 additions & 2 deletions R/discrete-cosmic.R
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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), ...)
}
}
12 changes: 10 additions & 2 deletions R/discrete-d3.R
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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), ...)
}
}
12 changes: 10 additions & 2 deletions R/discrete-flatui.R
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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), ...)
}
}
12 changes: 10 additions & 2 deletions R/discrete-frontiers.R
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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), ...)
}
}
12 changes: 10 additions & 2 deletions R/discrete-futurama.R
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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), ...)
}
}
12 changes: 10 additions & 2 deletions R/discrete-igv.R
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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), ...)
}
}
12 changes: 10 additions & 2 deletions R/discrete-jama.R
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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), ...)
}
}
12 changes: 10 additions & 2 deletions R/discrete-jco.R
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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), ...)
}
}
12 changes: 10 additions & 2 deletions R/discrete-lancet.R
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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), ...)
}
}
12 changes: 10 additions & 2 deletions R/discrete-locuszoom.R
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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), ...)
}
}
12 changes: 10 additions & 2 deletions R/discrete-nejm.R
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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), ...)
}
}
12 changes: 10 additions & 2 deletions R/discrete-npg.R
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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), ...)
}
}
12 changes: 10 additions & 2 deletions R/discrete-rickandmorty.R
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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), ...)
}
}
12 changes: 10 additions & 2 deletions R/discrete-simpsons.R
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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), ...)
}
}
Loading

0 comments on commit 0924fd7

Please sign in to comment.