From d65e2f1a0f782045d9199d79c4711cb9ead00f91 Mon Sep 17 00:00:00 2001 From: baptiste Date: Tue, 1 Nov 2016 08:21:55 +1300 Subject: [PATCH 1/4] 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()`. --- R/theme-defaults.r | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/R/theme-defaults.r b/R/theme-defaults.r index d269512e27..031e2d2bcf 100644 --- a/R/theme-defaults.r +++ b/R/theme-defaults.r @@ -134,7 +134,7 @@ theme_grey <- function(base_size = 11, base_family = "") { panel.background = element_rect(fill = "grey92", colour = NA), panel.border = element_blank(), panel.grid.major = element_line(colour = "white"), - panel.grid.minor = element_line(colour = "white", size = 0.25), + panel.grid.minor = element_line(colour = "white", size = rel(0.25)), panel.spacing = unit(half_line, "pt"), panel.spacing.x = NULL, panel.spacing.y = NULL, @@ -186,11 +186,11 @@ theme_bw <- function(base_size = 11, base_family = "") { panel.border = element_rect(fill = NA, colour = "grey20"), # make gridlines dark, same contrast with white as in theme_grey panel.grid.major = element_line(colour = "grey92"), - panel.grid.minor = element_line(colour = "grey92", size = 0.25), + panel.grid.minor = element_line(colour = "grey92", size = rel(0.25)), # contour strips to match panel contour strip.background = element_rect(fill = "grey85", colour = "grey20"), # match legend key to background - legend.key = element_rect(fill = "white", colour=NA), + legend.key = element_rect(fill = "white", colour = NA), complete = TRUE ) @@ -205,14 +205,14 @@ theme_linedraw <- function(base_size = 11, base_family = "") { theme( # black text and ticks on the axes axis.text = element_text(colour = "black", size = rel(0.8)), - axis.ticks = element_line(colour = "black", size = 0.25), + axis.ticks = element_line(colour = "black", size = rel(0.25)), # NB: match the *visual* thickness of axis ticks to the panel border # 0.5 clipped looks like 0.25 # pure black panel border and grid lines, but thinner - panel.border = element_rect(fill = NA, colour = "black", size = 0.5), - panel.grid.major = element_line(colour = "black", size = 0.05), - panel.grid.minor = element_line(colour = "black", size = 0.025), + panel.border = element_rect(fill = NA, colour = "black", size = rel(0.5)), + panel.grid.major = element_line(colour = "black", size = rel(0.05)), + panel.grid.minor = element_line(colour = "black", size = rel(0.025)), # strips with black background and white text strip.background = element_rect(fill = "black"), @@ -230,14 +230,14 @@ theme_light <- function(base_size = 11, base_family = "") { theme( # white panel with light grey border panel.background = element_rect(fill = "white", colour = NA), - panel.border = element_rect(fill = NA, colour = "grey70", size = 0.5), + panel.border = element_rect(fill = NA, colour = "grey70", size = rel(0.5)), # light grey, thinner gridlines # => make them slightly darker to keep acceptable contrast - panel.grid.major = element_line(colour = "grey87", size = 0.25), - panel.grid.minor = element_line(colour = "grey87", size = 0.125), + panel.grid.major = element_line(colour = "grey87", size = rel(0.25)), + panel.grid.minor = element_line(colour = "grey87", size = rel(0.125)), # match axes ticks thickness to gridlines and colour to panel border - axis.ticks = element_line(colour = "grey70", size = 0.25), + axis.ticks = element_line(colour = "grey70", size = rel(0.25)), # match legend key to panel.background legend.key = element_rect(fill = "white", colour = NA), @@ -261,11 +261,11 @@ theme_dark <- function(base_size = 11, base_family = "") { panel.background = element_rect(fill = "grey50", colour = NA), # inverse grid lines contrast compared to theme_grey # make them thinner and try to keep the same visual contrast as in theme_light - panel.grid.major = element_line(colour = "grey42", size = 0.25), - panel.grid.minor = element_line(colour = "grey42", size = 0.125), + panel.grid.major = element_line(colour = "grey42", size = rel(0.25)), + panel.grid.minor = element_line(colour = "grey42", size = rel(0.125)), # match axes ticks thickness to gridlines - axis.ticks = element_line(colour = "grey20", size = 0.25), + axis.ticks = element_line(colour = "grey20", size = rel(0.25)), # match legend key to panel.background legend.key = element_rect(fill = "grey50", colour = NA), @@ -307,13 +307,13 @@ theme_classic <- function(base_size = 11, base_family = ""){ panel.grid.minor = element_blank(), # show axes - axis.line = element_line(colour = "black", size = 0.5), + axis.line = element_line(colour = "black", size = rel(0.5)), # match legend key to panel.background legend.key = element_blank(), # simple, black and white strips - strip.background = element_rect(fill = "white", colour = "black", size = 1), + strip.background = element_rect(fill = "white", colour = "black", size = rel(1)), # NB: size is 1 but clipped, it looks like the 0.5 of the axes complete = TRUE From 8325bcf9fc08e86ca5a8120d6a99007250681f89 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Mon, 19 Jun 2017 10:58:56 -0700 Subject: [PATCH 2/4] Add line to NEWS.md about the more consistent use of rel() --- NEWS.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/NEWS.md b/NEWS.md index f511995c19..9c089905cd 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,7 @@ # ggplot2 2.2.1.9000 +* Uses `rel()` more consistently in theme defaults (@baptiste). + * `geom_density` drops groups with fewer than two data points and throws a warning. For groups with two data points, the density values are now calculated with `stats::density` (@karawoo, #2127). From f1148899f48147da9558dc7ca316c527806940b8 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Mon, 19 Jun 2017 14:02:27 -0700 Subject: [PATCH 3/4] Double values inside `rel()` for themes grey, bw, light, dark, classic, and linedraw --- R/theme-defaults.r | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/R/theme-defaults.r b/R/theme-defaults.r index 031e2d2bcf..7dae481723 100644 --- a/R/theme-defaults.r +++ b/R/theme-defaults.r @@ -134,7 +134,7 @@ theme_grey <- function(base_size = 11, base_family = "") { panel.background = element_rect(fill = "grey92", colour = NA), panel.border = element_blank(), panel.grid.major = element_line(colour = "white"), - panel.grid.minor = element_line(colour = "white", size = rel(0.25)), + panel.grid.minor = element_line(colour = "white", size = rel(0.5)), panel.spacing = unit(half_line, "pt"), panel.spacing.x = NULL, panel.spacing.y = NULL, @@ -186,7 +186,7 @@ theme_bw <- function(base_size = 11, base_family = "") { panel.border = element_rect(fill = NA, colour = "grey20"), # make gridlines dark, same contrast with white as in theme_grey panel.grid.major = element_line(colour = "grey92"), - panel.grid.minor = element_line(colour = "grey92", size = rel(0.25)), + panel.grid.minor = element_line(colour = "grey92", size = rel(0.5)), # contour strips to match panel contour strip.background = element_rect(fill = "grey85", colour = "grey20"), # match legend key to background @@ -205,14 +205,14 @@ theme_linedraw <- function(base_size = 11, base_family = "") { theme( # black text and ticks on the axes axis.text = element_text(colour = "black", size = rel(0.8)), - axis.ticks = element_line(colour = "black", size = rel(0.25)), + axis.ticks = element_line(colour = "black", size = rel(0.5)), # NB: match the *visual* thickness of axis ticks to the panel border # 0.5 clipped looks like 0.25 # pure black panel border and grid lines, but thinner - panel.border = element_rect(fill = NA, colour = "black", size = rel(0.5)), - panel.grid.major = element_line(colour = "black", size = rel(0.05)), - panel.grid.minor = element_line(colour = "black", size = rel(0.025)), + panel.border = element_rect(fill = NA, colour = "black", size = rel(1)), + panel.grid.major = element_line(colour = "black", size = rel(0.1)), + panel.grid.minor = element_line(colour = "black", size = rel(0.05)), # strips with black background and white text strip.background = element_rect(fill = "black"), @@ -230,14 +230,14 @@ theme_light <- function(base_size = 11, base_family = "") { theme( # white panel with light grey border panel.background = element_rect(fill = "white", colour = NA), - panel.border = element_rect(fill = NA, colour = "grey70", size = rel(0.5)), + panel.border = element_rect(fill = NA, colour = "grey70", size = rel(1)), # light grey, thinner gridlines # => make them slightly darker to keep acceptable contrast - panel.grid.major = element_line(colour = "grey87", size = rel(0.25)), - panel.grid.minor = element_line(colour = "grey87", size = rel(0.125)), + panel.grid.major = element_line(colour = "grey87", size = rel(0.5)), + panel.grid.minor = element_line(colour = "grey87", size = rel(0.25)), # match axes ticks thickness to gridlines and colour to panel border - axis.ticks = element_line(colour = "grey70", size = rel(0.25)), + axis.ticks = element_line(colour = "grey70", size = rel(0.5)), # match legend key to panel.background legend.key = element_rect(fill = "white", colour = NA), @@ -261,11 +261,11 @@ theme_dark <- function(base_size = 11, base_family = "") { panel.background = element_rect(fill = "grey50", colour = NA), # inverse grid lines contrast compared to theme_grey # make them thinner and try to keep the same visual contrast as in theme_light - panel.grid.major = element_line(colour = "grey42", size = rel(0.25)), - panel.grid.minor = element_line(colour = "grey42", size = rel(0.125)), + panel.grid.major = element_line(colour = "grey42", size = rel(0.5)), + panel.grid.minor = element_line(colour = "grey42", size = rel(0.25)), # match axes ticks thickness to gridlines - axis.ticks = element_line(colour = "grey20", size = rel(0.25)), + axis.ticks = element_line(colour = "grey20", size = rel(0.5)), # match legend key to panel.background legend.key = element_rect(fill = "grey50", colour = NA), @@ -307,13 +307,13 @@ theme_classic <- function(base_size = 11, base_family = ""){ panel.grid.minor = element_blank(), # show axes - axis.line = element_line(colour = "black", size = rel(0.5)), + axis.line = element_line(colour = "black", size = rel(1)), # match legend key to panel.background legend.key = element_blank(), # simple, black and white strips - strip.background = element_rect(fill = "white", colour = "black", size = rel(1)), + strip.background = element_rect(fill = "white", colour = "black", size = rel(2)), # NB: size is 1 but clipped, it looks like the 0.5 of the axes complete = TRUE From 70770d34a73e737be276bf4397abf9a3e06acf24 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Wed, 21 Jun 2017 09:37:27 -0700 Subject: [PATCH 4/4] Make NEWS.md description more explicit --- NEWS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index 9c089905cd..91301ef55d 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,6 +1,6 @@ # ggplot2 2.2.1.9000 -* Uses `rel()` more consistently in theme defaults (@baptiste). +* Use `rel()` to set line widths in theme defaults (@baptiste). * `geom_density` drops groups with fewer than two data points and throws a warning. For groups with two data points, the density values are now