Skip to content

Commit c052d81

Browse files
authored
Scales expose aesthetics argument (#6227)
* add news bullet * add `aesthetics` as parameter * redocument * add news bullet
1 parent 7356fe3 commit c052d81

16 files changed

+194
-103
lines changed

NEWS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,7 @@
287287
* Munching in `coord_polar()` and `coord_radial()` now adds more detail,
288288
particularly for data-points with a low radius near the center
289289
(@teunbrand, #5023).
290+
* All scales now expose the `aesthetics` parameter (@teunbrand, #5841)
290291

291292
# ggplot2 3.5.1
292293

R/scale-alpha.R

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@
3131
#'
3232
#' # Changing the title
3333
#' p + scale_alpha("cylinders")
34-
scale_alpha <- function(name = waiver(), ..., range = NULL) {
34+
scale_alpha <- function(name = waiver(), ..., range = NULL, aesthetics = "alpha") {
3535
palette <- if (!is.null(range)) pal_rescale(range) else NULL
36-
continuous_scale("alpha", name = name, palette = palette, ...)
36+
continuous_scale(aesthetics, name = name, palette = palette, ...)
3737
}
3838

3939
#' @rdname scale_alpha
@@ -42,9 +42,9 @@ scale_alpha_continuous <- scale_alpha
4242

4343
#' @rdname scale_alpha
4444
#' @export
45-
scale_alpha_binned <- function(name = waiver(), ..., range = NULL) {
45+
scale_alpha_binned <- function(name = waiver(), ..., range = NULL, aesthetics = "alpha") {
4646
palette <- if (!is.null(range)) pal_rescale(range) else NULL
47-
binned_scale("alpha", name = name, palette = palette, ...)
47+
binned_scale(aesthetics, name = name, palette = palette, ...)
4848
}
4949

5050
#' @rdname scale_alpha
@@ -58,33 +58,33 @@ scale_alpha_discrete <- function(...) {
5858

5959
#' @rdname scale_alpha
6060
#' @export
61-
scale_alpha_ordinal <- function(name = waiver(), ..., range = NULL) {
61+
scale_alpha_ordinal <- function(name = waiver(), ..., range = NULL, aesthetics = "alpha") {
6262
palette <- if (!is.null(range)) {
6363
function(n) seq(range[1], range[2], length.out = n)
6464
} else {
6565
NULL
6666
}
67-
discrete_scale("alpha", name = name, palette = palette, ...)
67+
discrete_scale(aesthetics, name = name, palette = palette, ...)
6868
}
6969

7070
#' @rdname scale_alpha
7171
#' @export
7272
#' @usage NULL
73-
scale_alpha_datetime <- function(name = waiver(), ..., range = NULL) {
73+
scale_alpha_datetime <- function(name = waiver(), ..., range = NULL, aesthetics = "alpha") {
7474
palette <- if (!is.null(range)) pal_rescale(range) else NULL
7575
datetime_scale(
76-
aesthetics = "alpha", transform = "time", name = name,
76+
aesthetics = aesthetics, transform = "time", name = name,
7777
palette = palette, ...
7878
)
7979
}
8080

8181
#' @rdname scale_alpha
8282
#' @export
8383
#' @usage NULL
84-
scale_alpha_date <- function(name = waiver(), ..., range = NULL){
84+
scale_alpha_date <- function(name = waiver(), ..., range = NULL, aesthetics = "alpha"){
8585
palette <- if (!is.null(range)) pal_rescale(range) else NULL
8686
datetime_scale(
87-
aesthetics = "alpha", transform = "date", name = name,
87+
aesthetics = aesthetics, transform = "date", name = name,
8888
palette = palette, ...
8989
)
9090
}

R/scale-identity.R

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,10 @@ scale_fill_identity <- function(name = waiver(), ..., guide = "none",
8989
#' @seealso
9090
#' Other shape scales: [scale_shape()], [scale_shape_manual()].
9191
#' @export
92-
scale_shape_identity <- function(name = waiver(), ..., guide = "none") {
92+
scale_shape_identity <- function(name = waiver(), ..., guide = "none",
93+
aesthetics = "shape") {
9394
continuous_scale(
94-
"shape", name = name,
95+
aesthetics, name = name,
9596
palette = pal_identity(), ..., guide = guide,
9697
super = ScaleContinuousIdentity
9798
)
@@ -101,9 +102,10 @@ scale_shape_identity <- function(name = waiver(), ..., guide = "none") {
101102
#' @seealso
102103
#' Other linetype scales: [scale_linetype()], [scale_linetype_manual()].
103104
#' @export
104-
scale_linetype_identity <- function(name = waiver(), ..., guide = "none") {
105+
scale_linetype_identity <- function(name = waiver(), ..., guide = "none",
106+
aesthetics = "linetype") {
105107
discrete_scale(
106-
"linetype", name = name,
108+
aesthetics, name = name,
107109
palette = pal_identity(), ..., guide = guide,
108110
super = ScaleDiscreteIdentity
109111
)
@@ -113,19 +115,21 @@ scale_linetype_identity <- function(name = waiver(), ..., guide = "none") {
113115
#' @seealso
114116
#' Other alpha scales: [scale_alpha()], [scale_alpha_manual()].
115117
#' @export
116-
scale_linewidth_identity <- function(name = waiver(), ..., guide = "none") {
118+
scale_linewidth_identity <- function(name = waiver(), ..., guide = "none",
119+
aesthetics = "linewidth") {
117120
continuous_scale(
118-
"linewidth", name = name,
121+
aesthetics, name = name,
119122
palette = pal_identity(), ...,
120123
guide = guide, super = ScaleContinuousIdentity
121124
)
122125
}
123126

124127
#' @rdname scale_identity
125128
#' @export
126-
scale_alpha_identity <- function(name = waiver(), ..., guide = "none") {
129+
scale_alpha_identity <- function(name = waiver(), ..., guide = "none",
130+
aesthetics = "alpha") {
127131
continuous_scale(
128-
"alpha", name = name,
132+
aesthetics, name = name,
129133
palette = pal_identity(), ..., guide = guide,
130134
super = ScaleContinuousIdentity
131135
)
@@ -135,9 +139,10 @@ scale_alpha_identity <- function(name = waiver(), ..., guide = "none") {
135139
#' @seealso
136140
#' Other size scales: [scale_size()], [scale_size_manual()].
137141
#' @export
138-
scale_size_identity <- function(name = waiver(), ..., guide = "none") {
142+
scale_size_identity <- function(name = waiver(), ..., guide = "none",
143+
aesthetics = "size") {
139144
continuous_scale(
140-
"size", name = name,
145+
aesthetics, name = name,
141146
palette = pal_identity(), ..., guide = guide,
142147
super = ScaleContinuousIdentity
143148
)

R/scale-linetype.R

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
#' line types unless `scale_linetype_binned()` is used. Still, as linetypes has
66
#' no inherent order, this use is not advised.
77
#'
8-
#' @inheritParams scale_x_discrete
8+
#' @inheritParams discrete_scale
99
#' @inheritDotParams discrete_scale -expand -position -na.value -scale_name -palette
1010
#' @param na.value The linetype to use for `NA` values.
1111
#' @rdname scale_linetype
@@ -35,9 +35,9 @@
3535
#' scale_linetype_identity() +
3636
#' facet_grid(linetype ~ .) +
3737
#' theme_void(20)
38-
scale_linetype <- function(name = waiver(), ..., na.value = NA) {
38+
scale_linetype <- function(name = waiver(), ..., na.value = NA, aesthetics = "linetype") {
3939
discrete_scale(
40-
"linetype", name = name,
40+
aesthetics, name = name,
4141
palette = NULL,
4242
na.value = na.value,
4343
...
@@ -46,9 +46,9 @@ scale_linetype <- function(name = waiver(), ..., na.value = NA) {
4646

4747
#' @rdname scale_linetype
4848
#' @export
49-
scale_linetype_binned <- function(name = waiver(), ..., na.value = NA) {
49+
scale_linetype_binned <- function(name = waiver(), ..., na.value = NA, aesthetics = "linetype") {
5050
binned_scale(
51-
"linetype", name = name,
51+
aesthetics, name = name,
5252
palette = NULL,
5353
na.value = na.value,
5454
...

R/scale-linewidth.R

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,10 @@ scale_linewidth_continuous <- function(name = waiver(), breaks = waiver(),
3333
labels = waiver(), limits = NULL,
3434
range = NULL, transform = "identity",
3535
trans = deprecated(),
36-
guide = "legend") {
36+
guide = "legend",
37+
aesthetics = "linewidth") {
3738
palette <- if (!is.null(range)) pal_rescale(range) else NULL
38-
continuous_scale("linewidth", palette = palette, name = name,
39+
continuous_scale(aesthetics, palette = palette, name = name,
3940
breaks = breaks, labels = labels, limits = limits,
4041
transform = transform, trans = trans, guide = guide)
4142
}
@@ -49,9 +50,9 @@ scale_linewidth <- scale_linewidth_continuous
4950
scale_linewidth_binned <- function(name = waiver(), breaks = waiver(), labels = waiver(),
5051
limits = NULL, range = NULL, n.breaks = NULL,
5152
nice.breaks = TRUE, transform = "identity",
52-
trans = deprecated(), guide = "bins") {
53+
trans = deprecated(), guide = "bins", aesthetics = "linewidth") {
5354
palette <- if (!is.null(range)) pal_rescale(range) else NULL
54-
binned_scale("linewidth", palette = palette, name = name,
55+
binned_scale(aesthetics, palette = palette, name = name,
5556
breaks = breaks, labels = labels, limits = limits,
5657
transform = transform, trans = trans, n.breaks = n.breaks,
5758
nice.breaks = nice.breaks, guide = guide)
@@ -70,33 +71,33 @@ scale_linewidth_discrete <- function(...) {
7071
#' @rdname scale_linewidth
7172
#' @export
7273
#' @usage NULL
73-
scale_linewidth_ordinal <- function(name = waiver(), ..., range = NULL) {
74+
scale_linewidth_ordinal <- function(name = waiver(), ..., range = NULL, aesthetics = "linewidth") {
7475
palette <- if (!is.null(range)) {
7576
function(n) seq(range[1], range[2], length.out = n)
7677
} else {
7778
NULL
7879
}
79-
discrete_scale("linewidth", name = name, palette = palette, ...)
80+
discrete_scale(aesthetics, name = name, palette = palette, ...)
8081
}
8182

8283
#' @rdname scale_linewidth
8384
#' @export
8485
#' @usage NULL
85-
scale_linewidth_datetime <- function(name = waiver(), ..., range = NULL) {
86+
scale_linewidth_datetime <- function(name = waiver(), ..., range = NULL, aesthetics = "linewidth") {
8687
palette <- if (!is.null(range)) pal_rescale(range) else NULL
8788
datetime_scale(
88-
"linewidth", transform = "time", name = name,
89+
aesthetics, transform = "time", name = name,
8990
palette = palette, ...
9091
)
9192
}
9293

9394
#' @rdname scale_linewidth
9495
#' @export
9596
#' @usage NULL
96-
scale_linewidth_date <- function(name = waiver(), ..., range = NULL) {
97+
scale_linewidth_date <- function(name = waiver(), ..., range = NULL, aesthetics = "linewidth") {
9798
palette <- if (!is.null(range)) pal_rescale(range) else NULL
9899
datetime_scale(
99-
"linewidth", transform = "date", name = name,
100+
aesthetics, transform = "date", name = name,
100101
palette = palette, ...
101102
)
102103
}

R/scale-manual.R

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
#' `scale_discrete_manual()` is a generic scale that can work with any aesthetic or set
1212
#' of aesthetics provided via the `aesthetics` argument.
1313
#'
14-
#' @inheritParams scale_x_discrete
14+
#' @inheritParams discrete_scale
1515
#' @inheritDotParams discrete_scale -expand -position -aesthetics -palette -scale_name
1616
#' @param aesthetics Character string or vector of character strings listing the
1717
#' name(s) of the aesthetic(s) that this scale works with. This can be useful, for
@@ -103,38 +103,38 @@ scale_fill_manual <- function(..., values, aesthetics = "fill", breaks = waiver(
103103
#' @seealso
104104
#' Other size scales: [scale_size()], [scale_size_identity()].
105105
#' @export
106-
scale_size_manual <- function(..., values, breaks = waiver(), na.value = NA) {
107-
manual_scale("size", values, breaks, ..., na.value = na.value)
106+
scale_size_manual <- function(..., values, breaks = waiver(), na.value = NA, aesthetics = "size") {
107+
manual_scale(aesthetics, values, breaks, ..., na.value = na.value)
108108
}
109109

110110
#' @rdname scale_manual
111111
#' @seealso
112112
#' Other shape scales: [scale_shape()], [scale_shape_identity()].
113113
#' @export
114-
scale_shape_manual <- function(..., values, breaks = waiver(), na.value = NA) {
115-
manual_scale("shape", values, breaks, ..., na.value = na.value)
114+
scale_shape_manual <- function(..., values, breaks = waiver(), na.value = NA, aesthetics = "shape") {
115+
manual_scale(aesthetics, values, breaks, ..., na.value = na.value)
116116
}
117117

118118
#' @rdname scale_manual
119119
#' @seealso
120120
#' Other linetype scales: [scale_linetype()], [scale_linetype_identity()].
121121
#' @export
122-
scale_linetype_manual <- function(..., values, breaks = waiver(), na.value = NA) {
123-
manual_scale("linetype", values, breaks, ..., na.value = na.value)
122+
scale_linetype_manual <- function(..., values, breaks = waiver(), na.value = NA, aesthetics = "linetype") {
123+
manual_scale(aesthetics, values, breaks, ..., na.value = na.value)
124124
}
125125

126126
#' @rdname scale_manual
127127
#' @seealso
128128
#' Other alpha scales: [scale_alpha()], [scale_alpha_identity()].
129129
#' @export
130-
scale_linewidth_manual <- function(..., values, breaks = waiver(), na.value = NA) {
131-
manual_scale("linewidth", values, breaks, ..., na.value = na.value)
130+
scale_linewidth_manual <- function(..., values, breaks = waiver(), na.value = NA, aesthetics = "linewidth") {
131+
manual_scale(aesthetics, values, breaks, ..., na.value = na.value)
132132
}
133133

134134
#' @rdname scale_manual
135135
#' @export
136-
scale_alpha_manual <- function(..., values, breaks = waiver(), na.value = NA) {
137-
manual_scale("alpha", values, breaks, ..., na.value = na.value)
136+
scale_alpha_manual <- function(..., values, breaks = waiver(), na.value = NA, aesthetics = "alpha") {
137+
manual_scale(aesthetics, values, breaks, ..., na.value = na.value)
138138
}
139139

140140
#' @rdname scale_manual

R/scale-shape.R

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
#'
1010
#' @param solid Should the shapes be solid, `TRUE`, or hollow,
1111
#' `FALSE`?
12-
#' @inheritParams scale_x_discrete
12+
#' @inheritParams discrete_scale
1313
#' @inheritDotParams discrete_scale -expand -position -scale_name -palette
1414
#' @rdname scale_shape
1515
#' @details
@@ -49,16 +49,16 @@
4949
#' scale_shape_identity() +
5050
#' facet_wrap(~shape) +
5151
#' theme_void()
52-
scale_shape <- function(name = waiver(), ..., solid = NULL) {
52+
scale_shape <- function(name = waiver(), ..., solid = NULL, aesthetics = "shape") {
5353
palette <- if (!is.null(solid)) pal_shape(solid) else NULL
54-
discrete_scale("shape", name = name, palette = palette, ...)
54+
discrete_scale(aesthetics, name = name, palette = palette, ...)
5555
}
5656

5757
#' @rdname scale_shape
5858
#' @export
59-
scale_shape_binned <- function(name = waiver(), ..., solid = TRUE) {
59+
scale_shape_binned <- function(name = waiver(), ..., solid = TRUE, aesthetics = "shape") {
6060
palette <- if (!is.null(solid)) pal_binned(pal_shape(solid)) else NULL
61-
binned_scale("shape", name = name, palette = palette, ...)
61+
binned_scale(aesthetics, name = name, palette = palette, ...)
6262
}
6363

6464
#' @rdname scale_shape

0 commit comments

Comments
 (0)