Skip to content

Commit 6903f7e

Browse files
committed
Merge branch 'main' into facets_ordered
2 parents 0a15d77 + 7c9a73a commit 6903f7e

21 files changed

+1120
-732
lines changed

DESCRIPTION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Package: ggplot2
2-
Version: 3.5.0
2+
Version: 3.5.0.9000
33
Title: Create Elegant Data Visualisations Using the Grammar of Graphics
44
Authors@R: c(
55
person("Hadley", "Wickham", , "[email protected]", role = "aut",

LICENSE

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
YEAR: 2020
2-
COPYRIGHT HOLDER: ggplot2 authors
1+
YEAR: 2024
2+
COPYRIGHT HOLDER: ggplot2 core developer team

NEWS.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33

44
# ggplot2 3.5.0
55

6+
# ggplot2 3.5.0
7+
68
This is a minor release that turned out quite beefy. It is focused on
79
overhauling the guide system: the system responsible for displaying information
810
from scales in the guise of axes and legends. As part of that overhaul, new

R/coord-radial.R

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,12 @@ CoordRadial <- ggproto("CoordRadial", Coord,
215215
gdefs[[r]] <- guides[[r]]$get_layer_key(gdefs[[r]], layers)
216216
}
217217

218+
# Set theme suffixes
219+
gdefs$theta$theme_suffix <- "theta"
220+
gdefs$theta.sec$theme_suffix <- "theta"
221+
gdefs$r$theme_suffix <- "r"
222+
gdefs$r.sec$theme_suffix <- "r"
223+
218224
panel_params$guides$update_params(gdefs)
219225
panel_params
220226
},

R/guide-axis-theta.R

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ guide_axis_theta <- function(title = waiver(), theme = NULL, angle = waiver(),
4141
angle = angle,
4242
cap = cap,
4343
minor.ticks = minor.ticks,
44+
theme = theme,
4445

4546
# parameter
4647
available_aes = c("x", "y", "theta"),
@@ -85,8 +86,6 @@ GuideAxisTheta <- ggproto(
8586
key <- params$key
8687
n <- nrow(key)
8788

88-
params$theme_aes <- coord$theta %||% params$aesthetic
89-
9089
if (!("theta" %in% names(key))) {
9190
# We likely have a linear coord, so we match the text angles to
9291
# standard axes to be visually similar.
@@ -129,12 +128,13 @@ GuideAxisTheta <- ggproto(
129128
},
130129

131130
setup_elements = function(params, elements, theme) {
131+
theme <- add_theme(theme, params$theme)
132132

133133
axis_elem <- c("line", "text", "ticks", "minor", "major_length", "minor_length")
134134
is_char <- vapply(elements[axis_elem], is.character, logical(1))
135135
axis_elem <- axis_elem[is_char]
136136

137-
aes <- switch(
137+
aes <- params$theme_suffix %||% switch(
138138
params$position,
139139
theta = "x.bottom",
140140
theta.sec = "x.top",

R/guide-axis.R

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,8 @@ GuideAxis <- ggproto(
228228

229229
setup_elements = function(params, elements, theme) {
230230
is_char <- vapply(elements, is.character, logical(1))
231-
suffix <- paste(params$aes, params$position, sep = ".")
231+
suffix <- params$theme_suffix %||%
232+
paste(params$aes, params$position, sep = ".")
232233
elements[is_char] <- vapply(
233234
elements[is_char],
234235
function(x) paste(x, suffix, sep = "."),

R/theme-defaults.R

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,8 @@ theme_grey <- function(base_size = 11, base_family = "",
139139
axis.text.x.top = element_text(margin = margin(b = 0.8 * half_line / 2), vjust = 0),
140140
axis.text.y = element_text(margin = margin(r = 0.8 * half_line / 2), hjust = 1),
141141
axis.text.y.right = element_text(margin = margin(l = 0.8 * half_line / 2), hjust = 0),
142+
axis.text.r = element_text(margin = margin(l = 0.8 * half_line / 2, r = 0.8 * half_line / 2),
143+
hjust = 0.5),
142144
axis.ticks = element_line(colour = "grey20"),
143145
axis.ticks.length = unit(half_line / 2, "pt"),
144146
axis.ticks.length.x = NULL,

R/theme-elements.R

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -441,13 +441,17 @@ el_def <- function(class = NULL, inherit = NULL, description = NULL) {
441441
axis.line.y = el_def("element_line", "axis.line"),
442442
axis.line.y.left = el_def("element_line", "axis.line.y"),
443443
axis.line.y.right = el_def("element_line", "axis.line.y"),
444+
axis.line.theta = el_def("element_line", "axis.line.x"),
445+
axis.line.r = el_def("element_line", "axis.line.y"),
444446

445447
axis.text.x = el_def("element_text", "axis.text"),
446448
axis.text.x.top = el_def("element_text", "axis.text.x"),
447449
axis.text.x.bottom = el_def("element_text", "axis.text.x"),
448450
axis.text.y = el_def("element_text", "axis.text"),
449451
axis.text.y.left = el_def("element_text", "axis.text.y"),
450452
axis.text.y.right = el_def("element_text", "axis.text.y"),
453+
axis.text.theta = el_def("element_text", "axis.text.x"),
454+
axis.text.r = el_def("element_text", "axis.text.y"),
451455

452456
axis.ticks.length = el_def("unit"),
453457
axis.ticks.length.x = el_def(c("unit", "rel"), "axis.ticks.length"),
@@ -456,13 +460,17 @@ el_def <- function(class = NULL, inherit = NULL, description = NULL) {
456460
axis.ticks.length.y = el_def(c("unit", "rel"), "axis.ticks.length"),
457461
axis.ticks.length.y.left = el_def(c("unit", "rel"), "axis.ticks.length.y"),
458462
axis.ticks.length.y.right = el_def(c("unit", "rel"), "axis.ticks.length.y"),
463+
axis.ticks.length.theta = el_def(c("unit", "rel"), "axis.ticks.length.x"),
464+
axis.ticks.length.r = el_def(c("unit", "rel"), "axis.ticks.length.y"),
459465

460466
axis.ticks.x = el_def("element_line", "axis.ticks"),
461467
axis.ticks.x.top = el_def("element_line", "axis.ticks.x"),
462468
axis.ticks.x.bottom = el_def("element_line", "axis.ticks.x"),
463469
axis.ticks.y = el_def("element_line", "axis.ticks"),
464470
axis.ticks.y.left = el_def("element_line", "axis.ticks.y"),
465471
axis.ticks.y.right = el_def("element_line", "axis.ticks.y"),
472+
axis.ticks.theta = el_def("element_line", "axis.ticks.x"),
473+
axis.ticks.r = el_def("element_line", "axis.ticks.y"),
466474

467475
axis.title.x = el_def("element_text", "axis.title"),
468476
axis.title.x.top = el_def("element_text", "axis.title.x"),
@@ -475,6 +483,8 @@ el_def <- function(class = NULL, inherit = NULL, description = NULL) {
475483
axis.minor.ticks.x.bottom = el_def("element_line", "axis.ticks.x.bottom"),
476484
axis.minor.ticks.y.left = el_def("element_line", "axis.ticks.y.left"),
477485
axis.minor.ticks.y.right = el_def("element_line", "axis.ticks.y.right"),
486+
axis.minor.ticks.theta = el_def("element_line", "axis.ticks.theta"),
487+
axis.minor.ticks.r = el_def("element_line", "axis.ticks.r"),
478488

479489
axis.minor.ticks.length = el_def(c("unit", "rel")),
480490
axis.minor.ticks.length.x = el_def(c("unit", "rel"), "axis.minor.ticks.length"),
@@ -491,6 +501,12 @@ el_def <- function(class = NULL, inherit = NULL, description = NULL) {
491501
axis.minor.ticks.length.y.right = el_def(
492502
c("unit", "rel"), c("axis.minor.ticks.length.y", "axis.ticks.length.y.right")
493503
),
504+
axis.minor.ticks.length.theta = el_def(
505+
c("unit", "rel"), c("axis.minor.ticks.length.x", "axis.ticks.length.theta"),
506+
),
507+
axis.minor.ticks.length.r = el_def(
508+
c("unit", "rel"), c("axis.minor.ticks.length.y", "axis.ticks.length.r")
509+
),
494510

495511
legend.background = el_def("element_rect", "rect"),
496512
legend.margin = el_def("margin"),

R/theme.R

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,28 +34,28 @@
3434
#' `axis.title.y.left`, `axis.title.y.right`). `axis.title.*.*` inherits from
3535
#' `axis.title.*` which inherits from `axis.title`, which in turn inherits
3636
#' from `text`
37-
#' @param axis.text,axis.text.x,axis.text.y,axis.text.x.top,axis.text.x.bottom,axis.text.y.left,axis.text.y.right
37+
#' @param axis.text,axis.text.x,axis.text.y,axis.text.x.top,axis.text.x.bottom,axis.text.y.left,axis.text.y.right,axis.text.theta,axis.text.r
3838
#' tick labels along axes ([element_text()]). Specify all axis tick labels (`axis.text`),
3939
#' tick labels by plane (using `axis.text.x` or `axis.text.y`), or individually
4040
#' for each axis (using `axis.text.x.bottom`, `axis.text.x.top`,
4141
#' `axis.text.y.left`, `axis.text.y.right`). `axis.text.*.*` inherits from
4242
#' `axis.text.*` which inherits from `axis.text`, which in turn inherits
4343
#' from `text`
44-
#' @param axis.ticks,axis.ticks.x,axis.ticks.x.top,axis.ticks.x.bottom,axis.ticks.y,axis.ticks.y.left,axis.ticks.y.right
44+
#' @param axis.ticks,axis.ticks.x,axis.ticks.x.top,axis.ticks.x.bottom,axis.ticks.y,axis.ticks.y.left,axis.ticks.y.right,axis.ticks.theta,axis.ticks.r
4545
#' tick marks along axes ([element_line()]). Specify all tick marks (`axis.ticks`),
4646
#' ticks by plane (using `axis.ticks.x` or `axis.ticks.y`), or individually
4747
#' for each axis (using `axis.ticks.x.bottom`, `axis.ticks.x.top`,
4848
#' `axis.ticks.y.left`, `axis.ticks.y.right`). `axis.ticks.*.*` inherits from
4949
#' `axis.ticks.*` which inherits from `axis.ticks`, which in turn inherits
5050
#' from `line`
51-
#' @param axis.minor.ticks.x.top,axis.minor.ticks.x.bottom,axis.minor.ticks.y.left,axis.minor.ticks.y.right,
51+
#' @param axis.minor.ticks.x.top,axis.minor.ticks.x.bottom,axis.minor.ticks.y.left,axis.minor.ticks.y.right,axis.minor.ticks.theta,axis.minor.ticks.r,
5252
#' minor tick marks along axes ([element_line()]). `axis.minor.ticks.*.*`
5353
#' inherit from the corresponding major ticks `axis.ticks.*.*`.
54-
#' @param axis.ticks.length,axis.ticks.length.x,axis.ticks.length.x.top,axis.ticks.length.x.bottom,axis.ticks.length.y,axis.ticks.length.y.left,axis.ticks.length.y.right
54+
#' @param axis.ticks.length,axis.ticks.length.x,axis.ticks.length.x.top,axis.ticks.length.x.bottom,axis.ticks.length.y,axis.ticks.length.y.left,axis.ticks.length.y.right,axis.ticks.length.theta,axis.ticks.length.r
5555
#' length of tick marks (`unit`)
56-
#' @param axis.minor.ticks.length,axis.minor.ticks.length.x,axis.minor.ticks.length.x.top,axis.minor.ticks.length.x.bottom,axis.minor.ticks.length.y,axis.minor.ticks.length.y.left,axis.minor.ticks.length.y.right
56+
#' @param axis.minor.ticks.length,axis.minor.ticks.length.x,axis.minor.ticks.length.x.top,axis.minor.ticks.length.x.bottom,axis.minor.ticks.length.y,axis.minor.ticks.length.y.left,axis.minor.ticks.length.y.right,axis.minor.ticks.length.theta,axis.minor.ticks.length.r
5757
#' length of minor tick marks (`unit`), or relative to `axis.ticks.length` when provided with `rel()`.
58-
#' @param axis.line,axis.line.x,axis.line.x.top,axis.line.x.bottom,axis.line.y,axis.line.y.left,axis.line.y.right
58+
#' @param axis.line,axis.line.x,axis.line.x.top,axis.line.x.bottom,axis.line.y,axis.line.y.left,axis.line.y.right,axis.line.theta,axis.line.r
5959
#' lines along axes ([element_line()]). Specify lines along all axes (`axis.line`),
6060
#' lines for each plane (using `axis.line.x` or `axis.line.y`), or individually
6161
#' for each axis (using `axis.line.x.bottom`, `axis.line.x.top`,
@@ -323,38 +323,50 @@ theme <- function(...,
323323
axis.text.y,
324324
axis.text.y.left,
325325
axis.text.y.right,
326+
axis.text.theta,
327+
axis.text.r,
326328
axis.ticks,
327329
axis.ticks.x,
328330
axis.ticks.x.top,
329331
axis.ticks.x.bottom,
330332
axis.ticks.y,
331333
axis.ticks.y.left,
332334
axis.ticks.y.right,
335+
axis.ticks.theta,
336+
axis.ticks.r,
333337
axis.minor.ticks.x.top,
334338
axis.minor.ticks.x.bottom,
335339
axis.minor.ticks.y.left,
336340
axis.minor.ticks.y.right,
341+
axis.minor.ticks.theta,
342+
axis.minor.ticks.r,
337343
axis.ticks.length,
338344
axis.ticks.length.x,
339345
axis.ticks.length.x.top,
340346
axis.ticks.length.x.bottom,
341347
axis.ticks.length.y,
342348
axis.ticks.length.y.left,
343349
axis.ticks.length.y.right,
350+
axis.ticks.length.theta,
351+
axis.ticks.length.r,
344352
axis.minor.ticks.length,
345353
axis.minor.ticks.length.x,
346354
axis.minor.ticks.length.x.top,
347355
axis.minor.ticks.length.x.bottom,
348356
axis.minor.ticks.length.y,
349357
axis.minor.ticks.length.y.left,
350358
axis.minor.ticks.length.y.right,
359+
axis.minor.ticks.length.theta,
360+
axis.minor.ticks.length.r,
351361
axis.line,
352362
axis.line.x,
353363
axis.line.x.top,
354364
axis.line.x.bottom,
355365
axis.line.y,
356366
axis.line.y.left,
357367
axis.line.y.right,
368+
axis.line.theta,
369+
axis.line.r,
358370
legend.background,
359371
legend.margin,
360372
legend.spacing,

_pkgdown.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,8 @@ articles:
268268

269269
news:
270270
releases:
271+
- text: "Version 3.5.0"
272+
href: https://www.tidyverse.org/blog/2024/02/ggplot2-3-5-0/
271273
- text: "Version 3.4.0"
272274
href: https://www.tidyverse.org/blog/2022/11/ggplot2-3-4-0/
273275
- text: "Version 3.3.0"

0 commit comments

Comments
 (0)