Skip to content

Commit 0924fd7

Browse files
authored
Merge pull request #30 from nanxstats/ggplot2-compat
Improve backward compatibility with ggplot2 < 3.5.0
2 parents d610fc9 + 6eb7d07 commit 0924fd7

22 files changed

+270
-39
lines changed

DESCRIPTION

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Package: ggsci
22
Type: Package
33
Title: Scientific Journal and Sci-Fi Themed Color Palettes for 'ggplot2'
4-
Version: 3.0.2
4+
Version: 3.0.3
55
Authors@R: c(
66
person("Nan", "Xiao", email = "[email protected]", role = c("aut", "cre"),
77
comment = c(ORCID = "0000-0002-0250-5673")),

NEWS.md

+8
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
# ggsci 3.0.3
2+
3+
## Improvements
4+
5+
- Detect ggplot2 version at runtime to determine if the argument `scale_name`
6+
is needed for all `discrete_scale()` calls. This ensures ggsci always works
7+
regardless of the ggplot2 version installed (thanks, @flyingicedragon, #29).
8+
19
# ggsci 3.0.2
210

311
## Improvements

R/discrete-aaas.R

+10-2
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,11 @@ pal_aaas <- function(palette = c("default"), alpha = 1) {
7676
#' scale_fill_aaas()
7777
scale_color_aaas <- function(palette = c("default"), alpha = 1, ...) {
7878
palette <- match.arg(palette)
79-
discrete_scale("colour", palette = pal_aaas(palette, alpha), ...)
79+
if (is_ggplot2_350()) {
80+
discrete_scale("colour", palette = pal_aaas(palette, alpha), ...)
81+
} else {
82+
discrete_scale("colour", scale_name = "aaas", palette = pal_aaas(palette, alpha), ...)
83+
}
8084
}
8185

8286
#' @export scale_colour_aaas
@@ -88,5 +92,9 @@ scale_colour_aaas <- scale_color_aaas
8892
#' @rdname scale_aaas
8993
scale_fill_aaas <- function(palette = c("default"), alpha = 1, ...) {
9094
palette <- match.arg(palette)
91-
discrete_scale("fill", palette = pal_aaas(palette, alpha), ...)
95+
if (is_ggplot2_350()) {
96+
discrete_scale("fill", palette = pal_aaas(palette, alpha), ...)
97+
} else {
98+
discrete_scale("fill", scale_name = "aaas", palette = pal_aaas(palette, alpha), ...)
99+
}
92100
}

R/discrete-cosmic.R

+10-2
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,11 @@ scale_color_cosmic <- function(
8787
palette = c("hallmarks_light", "hallmarks_dark", "signature_substitutions"),
8888
alpha = 1, ...) {
8989
palette <- match.arg(palette)
90-
discrete_scale("colour", palette = pal_cosmic(palette, alpha), ...)
90+
if (is_ggplot2_350()) {
91+
discrete_scale("colour", palette = pal_cosmic(palette, alpha), ...)
92+
} else {
93+
discrete_scale("colour", scale_name = "cosmic", palette = pal_cosmic(palette, alpha), ...)
94+
}
9195
}
9296

9397
#' @export scale_colour_cosmic
@@ -101,5 +105,9 @@ scale_fill_cosmic <- function(
101105
palette = c("hallmarks_light", "hallmarks_dark", "signature_substitutions"),
102106
alpha = 1, ...) {
103107
palette <- match.arg(palette)
104-
discrete_scale("fill", palette = pal_cosmic(palette, alpha), ...)
108+
if (is_ggplot2_350()) {
109+
discrete_scale("fill", palette = pal_cosmic(palette, alpha), ...)
110+
} else {
111+
discrete_scale("fill", scale_name = "cosmic", palette = pal_cosmic(palette, alpha), ...)
112+
}
105113
}

R/discrete-d3.R

+10-2
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,11 @@ pal_d3 <- function(palette = c("category10", "category20", "category20b", "categ
9393
#' p2 + scale_fill_d3(palette = "category20c")
9494
scale_color_d3 <- function(palette = c("category10", "category20", "category20b", "category20c"), alpha = 1, ...) {
9595
palette <- match.arg(palette)
96-
discrete_scale("colour", palette = pal_d3(palette, alpha), ...)
96+
if (is_ggplot2_350()) {
97+
discrete_scale("colour", palette = pal_d3(palette, alpha), ...)
98+
} else {
99+
discrete_scale("colour", scale_name = "d3", palette = pal_d3(palette, alpha), ...)
100+
}
97101
}
98102

99103
#' @export scale_colour_d3
@@ -105,5 +109,9 @@ scale_colour_d3 <- scale_color_d3
105109
#' @rdname scale_d3
106110
scale_fill_d3 <- function(palette = c("category10", "category20", "category20b", "category20c"), alpha = 1, ...) {
107111
palette <- match.arg(palette)
108-
discrete_scale("fill", palette = pal_d3(palette, alpha), ...)
112+
if (is_ggplot2_350()) {
113+
discrete_scale("fill", palette = pal_d3(palette, alpha), ...)
114+
} else {
115+
discrete_scale("fill", scale_name = "d3", palette = pal_d3(palette, alpha), ...)
116+
}
109117
}

R/discrete-flatui.R

+10-2
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,11 @@ pal_flatui <- function(palette = c("default", "flattastic", "aussie"), alpha = 1
8686
#' p2 + scale_fill_flatui(palette = "aussie")
8787
scale_color_flatui <- function(palette = c("default", "flattastic", "aussie"), alpha = 1, ...) {
8888
palette <- match.arg(palette)
89-
discrete_scale("colour", palette = pal_flatui(palette, alpha), ...)
89+
if (is_ggplot2_350()) {
90+
discrete_scale("colour", palette = pal_flatui(palette, alpha), ...)
91+
} else {
92+
discrete_scale("colour", scale_name = "flatui", palette = pal_flatui(palette, alpha), ...)
93+
}
9094
}
9195

9296
#' @export scale_colour_flatui
@@ -98,5 +102,9 @@ scale_colour_flatui <- scale_color_flatui
98102
#' @rdname scale_flatui
99103
scale_fill_flatui <- function(palette = c("default", "flattastic", "aussie"), alpha = 1, ...) {
100104
palette <- match.arg(palette)
101-
discrete_scale("fill", palette = pal_flatui(palette, alpha), ...)
105+
if (is_ggplot2_350()) {
106+
discrete_scale("fill", palette = pal_flatui(palette, alpha), ...)
107+
} else {
108+
discrete_scale("fill", scale_name = "flatui", palette = pal_flatui(palette, alpha), ...)
109+
}
102110
}

R/discrete-frontiers.R

+10-2
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,11 @@ pal_frontiers <- function(palette = c("default"), alpha = 1) {
7979
#' scale_fill_frontiers()
8080
scale_color_frontiers <- function(palette = c("default"), alpha = 1, ...) {
8181
palette <- match.arg(palette)
82-
discrete_scale("colour", palette = pal_frontiers(palette, alpha), ...)
82+
if (is_ggplot2_350()) {
83+
discrete_scale("colour", palette = pal_frontiers(palette, alpha), ...)
84+
} else {
85+
discrete_scale("colour", scale_name = "frontiers", palette = pal_frontiers(palette, alpha), ...)
86+
}
8387
}
8488

8589
#' @export scale_colour_frontiers
@@ -91,5 +95,9 @@ scale_colour_frontiers <- scale_color_frontiers
9195
#' @rdname scale_frontiers
9296
scale_fill_frontiers <- function(palette = c("default"), alpha = 1, ...) {
9397
palette <- match.arg(palette)
94-
discrete_scale("fill", palette = pal_frontiers(palette, alpha), ...)
98+
if (is_ggplot2_350()) {
99+
discrete_scale("fill", palette = pal_frontiers(palette, alpha), ...)
100+
} else {
101+
discrete_scale("fill", scale_name = "frontiers", palette = pal_frontiers(palette, alpha), ...)
102+
}
95103
}

R/discrete-futurama.R

+10-2
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,11 @@ pal_futurama <- function(palette = c("planetexpress"), alpha = 1) {
7474
#' scale_fill_futurama()
7575
scale_color_futurama <- function(palette = c("planetexpress"), alpha = 1, ...) {
7676
palette <- match.arg(palette)
77-
discrete_scale("colour", palette = pal_futurama(palette, alpha), ...)
77+
if (is_ggplot2_350()) {
78+
discrete_scale("colour", palette = pal_futurama(palette, alpha), ...)
79+
} else {
80+
discrete_scale("colour", scale_name = "futurama", palette = pal_futurama(palette, alpha), ...)
81+
}
7882
}
7983

8084
#' @export scale_colour_futurama
@@ -86,5 +90,9 @@ scale_colour_futurama <- scale_color_futurama
8690
#' @rdname scale_futurama
8791
scale_fill_futurama <- function(palette = c("planetexpress"), alpha = 1, ...) {
8892
palette <- match.arg(palette)
89-
discrete_scale("fill", palette = pal_futurama(palette, alpha), ...)
93+
if (is_ggplot2_350()) {
94+
discrete_scale("fill", palette = pal_futurama(palette, alpha), ...)
95+
} else {
96+
discrete_scale("fill", scale_name = "futurama", palette = pal_futurama(palette, alpha), ...)
97+
}
9098
}

R/discrete-igv.R

+10-2
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,11 @@ pal_igv <- function(palette = c("default", "alternating"), alpha = 1) {
8989
#' )
9090
scale_color_igv <- function(palette = c("default", "alternating"), alpha = 1, ...) {
9191
palette <- match.arg(palette)
92-
discrete_scale("colour", palette = pal_igv(palette, alpha), ...)
92+
if (is_ggplot2_350()) {
93+
discrete_scale("colour", palette = pal_igv(palette, alpha), ...)
94+
} else {
95+
discrete_scale("colour", scale_name = "igv", palette = pal_igv(palette, alpha), ...)
96+
}
9397
}
9498

9599
#' @export scale_colour_igv
@@ -101,5 +105,9 @@ scale_colour_igv <- scale_color_igv
101105
#' @rdname scale_igv
102106
scale_fill_igv <- function(palette = c("default", "alternating"), alpha = 1, ...) {
103107
palette <- match.arg(palette)
104-
discrete_scale("fill", palette = pal_igv(palette, alpha), ...)
108+
if (is_ggplot2_350()) {
109+
discrete_scale("fill", palette = pal_igv(palette, alpha), ...)
110+
} else {
111+
discrete_scale("fill", scale_name = "igv", palette = pal_igv(palette, alpha), ...)
112+
}
105113
}

R/discrete-jama.R

+10-2
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,11 @@ pal_jama <- function(palette = c("default"), alpha = 1) {
7575
#' scale_fill_jama()
7676
scale_color_jama <- function(palette = c("default"), alpha = 1, ...) {
7777
palette <- match.arg(palette)
78-
discrete_scale("colour", palette = pal_jama(palette, alpha), ...)
78+
if (is_ggplot2_350()) {
79+
discrete_scale("colour", palette = pal_jama(palette, alpha), ...)
80+
} else {
81+
discrete_scale("colour", scale_name = "jama", palette = pal_jama(palette, alpha), ...)
82+
}
7983
}
8084

8185
#' @export scale_colour_jama
@@ -87,5 +91,9 @@ scale_colour_jama <- scale_color_jama
8791
#' @rdname scale_jama
8892
scale_fill_jama <- function(palette = c("default"), alpha = 1, ...) {
8993
palette <- match.arg(palette)
90-
discrete_scale("fill", palette = pal_jama(palette, alpha), ...)
94+
if (is_ggplot2_350()) {
95+
discrete_scale("fill", palette = pal_jama(palette, alpha), ...)
96+
} else {
97+
discrete_scale("fill", scale_name = "jama", palette = pal_jama(palette, alpha), ...)
98+
}
9199
}

R/discrete-jco.R

+10-2
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,11 @@ pal_jco <- function(palette = c("default"), alpha = 1) {
7474
#' scale_fill_jco()
7575
scale_color_jco <- function(palette = c("default"), alpha = 1, ...) {
7676
palette <- match.arg(palette)
77-
discrete_scale("colour", palette = pal_jco(palette, alpha), ...)
77+
if (is_ggplot2_350()) {
78+
discrete_scale("colour", palette = pal_jco(palette, alpha), ...)
79+
} else {
80+
discrete_scale("colour", scale_name = "jco", palette = pal_jco(palette, alpha), ...)
81+
}
7882
}
7983

8084
#' @export scale_colour_jco
@@ -86,5 +90,9 @@ scale_colour_jco <- scale_color_jco
8690
#' @rdname scale_jco
8791
scale_fill_jco <- function(palette = c("default"), alpha = 1, ...) {
8892
palette <- match.arg(palette)
89-
discrete_scale("fill", palette = pal_jco(palette, alpha), ...)
93+
if (is_ggplot2_350()) {
94+
discrete_scale("fill", palette = pal_jco(palette, alpha), ...)
95+
} else {
96+
discrete_scale("fill", scale_name = "jco", palette = pal_jco(palette, alpha), ...)
97+
}
9098
}

R/discrete-lancet.R

+10-2
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,11 @@ pal_lancet <- function(palette = c("lanonc"), alpha = 1) {
7575
#' scale_fill_lancet()
7676
scale_color_lancet <- function(palette = c("lanonc"), alpha = 1, ...) {
7777
palette <- match.arg(palette)
78-
discrete_scale("colour", palette = pal_lancet(palette, alpha), ...)
78+
if (is_ggplot2_350()) {
79+
discrete_scale("colour", palette = pal_lancet(palette, alpha), ...)
80+
} else {
81+
discrete_scale("colour", scale_name = "lancet", palette = pal_lancet(palette, alpha), ...)
82+
}
7983
}
8084

8185
#' @export scale_colour_lancet
@@ -87,5 +91,9 @@ scale_colour_lancet <- scale_color_lancet
8791
#' @rdname scale_lancet
8892
scale_fill_lancet <- function(palette = c("lanonc"), alpha = 1, ...) {
8993
palette <- match.arg(palette)
90-
discrete_scale("fill", palette = pal_lancet(palette, alpha), ...)
94+
if (is_ggplot2_350()) {
95+
discrete_scale("fill", palette = pal_lancet(palette, alpha), ...)
96+
} else {
97+
discrete_scale("fill", scale_name = "lancet", palette = pal_lancet(palette, alpha), ...)
98+
}
9199
}

R/discrete-locuszoom.R

+10-2
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,11 @@ pal_locuszoom <- function(palette = c("default"), alpha = 1) {
7979
#' scale_fill_locuszoom()
8080
scale_color_locuszoom <- function(palette = c("default"), alpha = 1, ...) {
8181
palette <- match.arg(palette)
82-
discrete_scale("colour", palette = pal_locuszoom(palette, alpha), ...)
82+
if (is_ggplot2_350()) {
83+
discrete_scale("colour", palette = pal_locuszoom(palette, alpha), ...)
84+
} else {
85+
discrete_scale("colour", scale_name = "locuszoom", palette = pal_locuszoom(palette, alpha), ...)
86+
}
8387
}
8488

8589
#' @export scale_colour_locuszoom
@@ -91,5 +95,9 @@ scale_colour_locuszoom <- scale_color_locuszoom
9195
#' @rdname scale_locuszoom
9296
scale_fill_locuszoom <- function(palette = c("default"), alpha = 1, ...) {
9397
palette <- match.arg(palette)
94-
discrete_scale("fill", palette = pal_locuszoom(palette, alpha), ...)
98+
if (is_ggplot2_350()) {
99+
discrete_scale("fill", palette = pal_locuszoom(palette, alpha), ...)
100+
} else {
101+
discrete_scale("fill", scale_name = "locuszoom", palette = pal_locuszoom(palette, alpha), ...)
102+
}
95103
}

R/discrete-nejm.R

+10-2
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,11 @@ pal_nejm <- function(palette = c("default"), alpha = 1) {
7575
#' scale_fill_nejm()
7676
scale_color_nejm <- function(palette = c("default"), alpha = 1, ...) {
7777
palette <- match.arg(palette)
78-
discrete_scale("colour", palette = pal_nejm(palette, alpha), ...)
78+
if (is_ggplot2_350()) {
79+
discrete_scale("colour", palette = pal_nejm(palette, alpha), ...)
80+
} else {
81+
discrete_scale("colour", scale_name = "nejm", palette = pal_nejm(palette, alpha), ...)
82+
}
7983
}
8084

8185
#' @export scale_colour_nejm
@@ -87,5 +91,9 @@ scale_colour_nejm <- scale_color_nejm
8791
#' @rdname scale_nejm
8892
scale_fill_nejm <- function(palette = c("default"), alpha = 1, ...) {
8993
palette <- match.arg(palette)
90-
discrete_scale("fill", palette = pal_nejm(palette, alpha), ...)
94+
if (is_ggplot2_350()) {
95+
discrete_scale("fill", palette = pal_nejm(palette, alpha), ...)
96+
} else {
97+
discrete_scale("fill", scale_name = "nejm", palette = pal_nejm(palette, alpha), ...)
98+
}
9199
}

R/discrete-npg.R

+10-2
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,11 @@ pal_npg <- function(palette = c("nrc"), alpha = 1) {
7575
#' scale_fill_npg()
7676
scale_color_npg <- function(palette = c("nrc"), alpha = 1, ...) {
7777
palette <- match.arg(palette)
78-
discrete_scale("colour", palette = pal_npg(palette, alpha), ...)
78+
if (is_ggplot2_350()) {
79+
discrete_scale("colour", palette = pal_npg(palette, alpha), ...)
80+
} else {
81+
discrete_scale("colour", scale_name = "npg", palette = pal_npg(palette, alpha), ...)
82+
}
7983
}
8084

8185
#' @export scale_colour_npg
@@ -87,5 +91,9 @@ scale_colour_npg <- scale_color_npg
8791
#' @rdname scale_npg
8892
scale_fill_npg <- function(palette = c("nrc"), alpha = 1, ...) {
8993
palette <- match.arg(palette)
90-
discrete_scale("fill", palette = pal_npg(palette, alpha), ...)
94+
if (is_ggplot2_350()) {
95+
discrete_scale("fill", palette = pal_npg(palette, alpha), ...)
96+
} else {
97+
discrete_scale("fill", scale_name = "npg", palette = pal_npg(palette, alpha), ...)
98+
}
9199
}

R/discrete-rickandmorty.R

+10-2
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,11 @@ pal_rickandmorty <- function(palette = c("schwifty"), alpha = 1) {
7474
#' scale_fill_rickandmorty()
7575
scale_color_rickandmorty <- function(palette = c("schwifty"), alpha = 1, ...) {
7676
palette <- match.arg(palette)
77-
discrete_scale("colour", palette = pal_rickandmorty(palette, alpha), ...)
77+
if (is_ggplot2_350()) {
78+
discrete_scale("colour", palette = pal_rickandmorty(palette, alpha), ...)
79+
} else {
80+
discrete_scale("colour", scale_name = "rickandmorty", palette = pal_rickandmorty(palette, alpha), ...)
81+
}
7882
}
7983

8084
#' @export scale_colour_rickandmorty
@@ -86,5 +90,9 @@ scale_colour_rickandmorty <- scale_color_rickandmorty
8690
#' @rdname scale_rickandmorty
8791
scale_fill_rickandmorty <- function(palette = c("schwifty"), alpha = 1, ...) {
8892
palette <- match.arg(palette)
89-
discrete_scale("fill", palette = pal_rickandmorty(palette, alpha), ...)
93+
if (is_ggplot2_350()) {
94+
discrete_scale("fill", palette = pal_rickandmorty(palette, alpha), ...)
95+
} else {
96+
discrete_scale("fill", scale_name = "rickandmorty", palette = pal_rickandmorty(palette, alpha), ...)
97+
}
9098
}

R/discrete-simpsons.R

+10-2
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,11 @@ pal_simpsons <- function(palette = c("springfield"), alpha = 1) {
7474
#' scale_fill_simpsons()
7575
scale_color_simpsons <- function(palette = c("springfield"), alpha = 1, ...) {
7676
palette <- match.arg(palette)
77-
discrete_scale("colour", palette = pal_simpsons(palette, alpha), ...)
77+
if (is_ggplot2_350()) {
78+
discrete_scale("colour", palette = pal_simpsons(palette, alpha), ...)
79+
} else {
80+
discrete_scale("colour", scale_name = "simpsons", palette = pal_simpsons(palette, alpha), ...)
81+
}
7882
}
7983

8084
#' @export scale_colour_simpsons
@@ -86,5 +90,9 @@ scale_colour_simpsons <- scale_color_simpsons
8690
#' @rdname scale_simpsons
8791
scale_fill_simpsons <- function(palette = c("springfield"), alpha = 1, ...) {
8892
palette <- match.arg(palette)
89-
discrete_scale("fill", palette = pal_simpsons(palette, alpha), ...)
93+
if (is_ggplot2_350()) {
94+
discrete_scale("fill", palette = pal_simpsons(palette, alpha), ...)
95+
} else {
96+
discrete_scale("fill", scale_name = "simpsons", palette = pal_simpsons(palette, alpha), ...)
97+
}
9098
}

0 commit comments

Comments
 (0)