Skip to content

Commit 2907cf5

Browse files
authored
Use rel() more consistently in theme elements, take two (#2173)
* use rel() more consistently for linewidths Small plots (e.g. in the margins of tufte-style books) tend to look heavy with the current linewidth settings, and after investigating I noticed some inconsistencies in the use of `rel()`. * Add line to NEWS.md about the more consistent use of rel() * Double values inside `rel()` for themes grey, bw, light, dark, classic, and linedraw * Make NEWS.md description more explicit
1 parent 2fea616 commit 2907cf5

File tree

2 files changed

+18
-16
lines changed

2 files changed

+18
-16
lines changed

NEWS.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# ggplot2 2.2.1.9000
22

3+
* Use `rel()` to set line widths in theme defaults (@baptiste).
4+
35
* `geom_density` drops groups with fewer than two data points and throws a
46
warning. For groups with two data points, the density values are now
57
calculated with `stats::density` (@karawoo, #2127).

R/theme-defaults.r

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ theme_grey <- function(base_size = 11, base_family = "") {
134134
panel.background = element_rect(fill = "grey92", colour = NA),
135135
panel.border = element_blank(),
136136
panel.grid.major = element_line(colour = "white"),
137-
panel.grid.minor = element_line(colour = "white", size = 0.25),
137+
panel.grid.minor = element_line(colour = "white", size = rel(0.5)),
138138
panel.spacing = unit(half_line, "pt"),
139139
panel.spacing.x = NULL,
140140
panel.spacing.y = NULL,
@@ -186,11 +186,11 @@ theme_bw <- function(base_size = 11, base_family = "") {
186186
panel.border = element_rect(fill = NA, colour = "grey20"),
187187
# make gridlines dark, same contrast with white as in theme_grey
188188
panel.grid.major = element_line(colour = "grey92"),
189-
panel.grid.minor = element_line(colour = "grey92", size = 0.25),
189+
panel.grid.minor = element_line(colour = "grey92", size = rel(0.5)),
190190
# contour strips to match panel contour
191191
strip.background = element_rect(fill = "grey85", colour = "grey20"),
192192
# match legend key to background
193-
legend.key = element_rect(fill = "white", colour=NA),
193+
legend.key = element_rect(fill = "white", colour = NA),
194194

195195
complete = TRUE
196196
)
@@ -205,14 +205,14 @@ theme_linedraw <- function(base_size = 11, base_family = "") {
205205
theme(
206206
# black text and ticks on the axes
207207
axis.text = element_text(colour = "black", size = rel(0.8)),
208-
axis.ticks = element_line(colour = "black", size = 0.25),
208+
axis.ticks = element_line(colour = "black", size = rel(0.5)),
209209
# NB: match the *visual* thickness of axis ticks to the panel border
210210
# 0.5 clipped looks like 0.25
211211

212212
# pure black panel border and grid lines, but thinner
213-
panel.border = element_rect(fill = NA, colour = "black", size = 0.5),
214-
panel.grid.major = element_line(colour = "black", size = 0.05),
215-
panel.grid.minor = element_line(colour = "black", size = 0.025),
213+
panel.border = element_rect(fill = NA, colour = "black", size = rel(1)),
214+
panel.grid.major = element_line(colour = "black", size = rel(0.1)),
215+
panel.grid.minor = element_line(colour = "black", size = rel(0.05)),
216216

217217
# strips with black background and white text
218218
strip.background = element_rect(fill = "black"),
@@ -230,14 +230,14 @@ theme_light <- function(base_size = 11, base_family = "") {
230230
theme(
231231
# white panel with light grey border
232232
panel.background = element_rect(fill = "white", colour = NA),
233-
panel.border = element_rect(fill = NA, colour = "grey70", size = 0.5),
233+
panel.border = element_rect(fill = NA, colour = "grey70", size = rel(1)),
234234
# light grey, thinner gridlines
235235
# => make them slightly darker to keep acceptable contrast
236-
panel.grid.major = element_line(colour = "grey87", size = 0.25),
237-
panel.grid.minor = element_line(colour = "grey87", size = 0.125),
236+
panel.grid.major = element_line(colour = "grey87", size = rel(0.5)),
237+
panel.grid.minor = element_line(colour = "grey87", size = rel(0.25)),
238238

239239
# match axes ticks thickness to gridlines and colour to panel border
240-
axis.ticks = element_line(colour = "grey70", size = 0.25),
240+
axis.ticks = element_line(colour = "grey70", size = rel(0.5)),
241241

242242
# match legend key to panel.background
243243
legend.key = element_rect(fill = "white", colour = NA),
@@ -261,11 +261,11 @@ theme_dark <- function(base_size = 11, base_family = "") {
261261
panel.background = element_rect(fill = "grey50", colour = NA),
262262
# inverse grid lines contrast compared to theme_grey
263263
# make them thinner and try to keep the same visual contrast as in theme_light
264-
panel.grid.major = element_line(colour = "grey42", size = 0.25),
265-
panel.grid.minor = element_line(colour = "grey42", size = 0.125),
264+
panel.grid.major = element_line(colour = "grey42", size = rel(0.5)),
265+
panel.grid.minor = element_line(colour = "grey42", size = rel(0.25)),
266266

267267
# match axes ticks thickness to gridlines
268-
axis.ticks = element_line(colour = "grey20", size = 0.25),
268+
axis.ticks = element_line(colour = "grey20", size = rel(0.5)),
269269

270270
# match legend key to panel.background
271271
legend.key = element_rect(fill = "grey50", colour = NA),
@@ -307,13 +307,13 @@ theme_classic <- function(base_size = 11, base_family = ""){
307307
panel.grid.minor = element_blank(),
308308

309309
# show axes
310-
axis.line = element_line(colour = "black", size = 0.5),
310+
axis.line = element_line(colour = "black", size = rel(1)),
311311

312312
# match legend key to panel.background
313313
legend.key = element_blank(),
314314

315315
# simple, black and white strips
316-
strip.background = element_rect(fill = "white", colour = "black", size = 1),
316+
strip.background = element_rect(fill = "white", colour = "black", size = rel(2)),
317317
# NB: size is 1 but clipped, it looks like the 0.5 of the axes
318318

319319
complete = TRUE

0 commit comments

Comments
 (0)