Skip to content

Commit d3adf17

Browse files
authored
Transparent fill of panel borders (#5784)
* Force `fill = NA` * remove superfluous `fill = NA` * add news bullet
1 parent 7a006da commit d3adf17

File tree

7 files changed

+17
-11
lines changed

7 files changed

+17
-11
lines changed

NEWS.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@
4747
systems (@teunbrand, #4690).
4848
* `geom_tile()` computes default widths and heights per panel instead of
4949
per layer (@teunbrand, #5740).
50+
* The `fill` of the `panel.border` theme setting is ignored and forced to be
51+
transparent (#5782).
5052

5153
# ggplot2 3.5.1
5254

R/coord-.R

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,9 @@ Coord <- ggproto("Coord",
6565
labels
6666
},
6767

68-
render_fg = function(panel_params, theme) element_render(theme, "panel.border"),
68+
render_fg = function(panel_params, theme) {
69+
element_render(theme, "panel.border", fill = NA)
70+
},
6971

7072
render_bg = function(self, panel_params, theme) {
7173
cli::cli_abort("{.fn {snake_class(self)}} has not implemented a {.fn render_bg} method.")

R/coord-polar.R

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ CoordPolar <- ggproto("CoordPolar", Coord,
265265

266266
render_fg = function(self, panel_params, theme) {
267267
if (is.null(panel_params$theta.major)) {
268-
return(element_render(theme, "panel.border"))
268+
return(element_render(theme, "panel.border", fill = NA))
269269
}
270270
arc <- self$start + c(0, 2 * pi)
271271
dir <- self$direction
@@ -297,7 +297,7 @@ CoordPolar <- ggproto("CoordPolar", Coord,
297297
unit(0.45 * cos(theta) + 0.5, "native"),
298298
hjust = 0.5, vjust = 0.5
299299
),
300-
element_render(theme, "panel.border")
300+
element_render(theme, "panel.border", fill = NA)
301301
)
302302
},
303303

R/coord-radial.R

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -357,11 +357,13 @@ CoordRadial <- ggproto("CoordRadial", Coord,
357357

358358
render_fg = function(self, panel_params, theme) {
359359

360+
border <- element_render(theme, "panel.border", fill = NA)
361+
360362
if (!self$r_axis_inside) {
361363
out <- grobTree(
362364
panel_guides_grob(panel_params$guides, "theta", theme),
363365
panel_guides_grob(panel_params$guides, "theta.sec", theme),
364-
element_render(theme, "panel.border")
366+
border
365367
)
366368
return(out)
367369
}
@@ -381,7 +383,7 @@ CoordRadial <- ggproto("CoordRadial", Coord,
381383
panel_guides_grob(panel_params$guides, "theta", theme),
382384
panel_guides_grob(panel_params$guides, "theta.sec", theme),
383385
left, right,
384-
element_render(theme, "panel.border")
386+
border
385387
)
386388
},
387389

R/theme-defaults.R

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@ theme_bw <- function(base_size = 11, base_family = "",
269269
theme(
270270
# white background and dark border
271271
panel.background = element_rect(fill = "white", colour = NA),
272-
panel.border = element_rect(fill = NA, colour = "grey20"),
272+
panel.border = element_rect(colour = "grey20"),
273273
# make gridlines dark, same contrast with white as in theme_grey
274274
panel.grid = element_line(colour = "grey92"),
275275
panel.grid.minor = element_line(linewidth = rel(0.5)),
@@ -303,7 +303,7 @@ theme_linedraw <- function(base_size = 11, base_family = "",
303303
# 0.5 clipped looks like 0.25
304304

305305
# pure black panel border and grid lines, but thinner
306-
panel.border = element_rect(fill = NA, colour = "black", linewidth = rel(1)),
306+
panel.border = element_rect(colour = "black", linewidth = rel(1)),
307307
panel.grid = element_line(colour = "black"),
308308
panel.grid.major = element_line(linewidth = rel(0.1)),
309309
panel.grid.minor = element_line(linewidth = rel(0.05)),
@@ -337,7 +337,7 @@ theme_light <- function(base_size = 11, base_family = "",
337337
theme(
338338
# white panel with light grey border
339339
panel.background = element_rect(fill = "white", colour = NA),
340-
panel.border = element_rect(fill = NA, colour = "grey70", linewidth = rel(1)),
340+
panel.border = element_rect(colour = "grey70", linewidth = rel(1)),
341341
# light grey, thinner gridlines
342342
# => make them slightly darker to keep acceptable contrast
343343
panel.grid = element_line(colour = "grey87"),
@@ -612,7 +612,7 @@ theme_test <- function(base_size = 11, base_family = "",
612612
legend.box.spacing = rel(2),
613613

614614
panel.background = element_rect(fill = "white", colour = NA),
615-
panel.border = element_rect(fill = NA, colour = "grey20"),
615+
panel.border = element_rect(colour = "grey20"),
616616
panel.grid.major = element_blank(),
617617
panel.grid.minor = element_blank(),
618618
panel.spacing = NULL,

R/theme.R

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@
226226
#' # Panels --------------------------------------------------------------------
227227
#'
228228
#' p1 + theme(panel.background = element_rect(fill = "white", colour = "grey50"))
229-
#' p1 + theme(panel.border = element_rect(linetype = "dashed", fill = NA))
229+
#' p1 + theme(panel.border = element_rect(linetype = "dashed"))
230230
#' p1 + theme(panel.grid.major = element_line(colour = "black"))
231231
#' p1 + theme(
232232
#' panel.grid.major.y = element_blank(),

man/theme.Rd

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)