diff --git a/NEWS.md b/NEWS.md index 0f6c3ac992..e8b0c809ff 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,8 @@ # ggplot2 (development version) +* All geoms now have consistent exposure of linejoin and lineend parameters, and + the guide keys will now respect these settings (@thomasp85, #4653) + * `geom_sf()` now respects `arrow` parameter for lines (@jakeruss, #4659) * Updated documentation for `print.ggplot` to reflect that it returns diff --git a/R/geom-abline.r b/R/geom-abline.r index 35b53ce57f..9778e76386 100644 --- a/R/geom-abline.r +++ b/R/geom-abline.r @@ -124,7 +124,7 @@ geom_abline <- function(mapping = NULL, data = NULL, #' @usage NULL #' @export GeomAbline <- ggproto("GeomAbline", Geom, - draw_panel = function(data, panel_params, coord) { + draw_panel = function(data, panel_params, coord, lineend = "butt") { ranges <- coord$backtransform_range(panel_params) if (coord$clip == "on" && coord$is_linear()) { @@ -138,7 +138,7 @@ GeomAbline <- ggproto("GeomAbline", Geom, data$y <- ranges$x[1] * data$slope + data$intercept data$yend <- ranges$x[2] * data$slope + data$intercept - GeomSegment$draw_panel(unique(data), panel_params, coord) + GeomSegment$draw_panel(unique(data), panel_params, coord, lineend = lineend) }, default_aes = aes(colour = "black", size = 0.5, linetype = 1, alpha = NA), diff --git a/R/geom-bar.r b/R/geom-bar.r index 54fc35684e..68d22f0b8b 100644 --- a/R/geom-bar.r +++ b/R/geom-bar.r @@ -137,8 +137,15 @@ GeomBar <- ggproto("GeomBar", GeomRect, flip_data(data, params$flipped_aes) }, - draw_panel = function(self, data, panel_params, coord, width = NULL, flipped_aes = FALSE) { + draw_panel = function(self, data, panel_params, coord, lineend = "butt", + linejoin = "mitre", width = NULL, flipped_aes = FALSE) { # Hack to ensure that width is detected as a parameter - ggproto_parent(GeomRect, self)$draw_panel(data, panel_params, coord) + ggproto_parent(GeomRect, self)$draw_panel( + data, + panel_params, + coord, + lineend = lineend, + linejoin = linejoin + ) } ) diff --git a/R/geom-boxplot.r b/R/geom-boxplot.r index 4a2d44ce88..e90211b251 100644 --- a/R/geom-boxplot.r +++ b/R/geom-boxplot.r @@ -205,12 +205,12 @@ GeomBoxplot <- ggproto("GeomBoxplot", Geom, flip_data(data, params$flipped_aes) }, - draw_group = function(data, panel_params, coord, fatten = 2, - outlier.colour = NULL, outlier.fill = NULL, - outlier.shape = 19, + draw_group = function(data, panel_params, coord, lineend = "butt", + linejoin = "mitre", fatten = 2, outlier.colour = NULL, + outlier.fill = NULL, outlier.shape = 19, outlier.size = 1.5, outlier.stroke = 0.5, - outlier.alpha = NULL, - notch = FALSE, notchwidth = 0.5, varwidth = FALSE, flipped_aes = FALSE) { + outlier.alpha = NULL, notch = FALSE, notchwidth = 0.5, + varwidth = FALSE, flipped_aes = FALSE) { data <- flip_data(data, flipped_aes) # this may occur when using geom_boxplot(stat = "identity") if (nrow(data) != 1) { @@ -274,8 +274,16 @@ GeomBoxplot <- ggproto("GeomBoxplot", Geom, ggname("geom_boxplot", grobTree( outliers_grob, - GeomSegment$draw_panel(whiskers, panel_params, coord), - GeomCrossbar$draw_panel(box, fatten = fatten, panel_params, coord, flipped_aes = flipped_aes) + GeomSegment$draw_panel(whiskers, panel_params, coord, lineend = lineend), + GeomCrossbar$draw_panel( + box, + fatten = fatten, + panel_params, + coord, + lineend = lineend, + linejoin = linejoin, + flipped_aes = flipped_aes + ) )) }, diff --git a/R/geom-col.r b/R/geom-col.r index be91cfc480..510e57c9d8 100644 --- a/R/geom-col.r +++ b/R/geom-col.r @@ -56,8 +56,15 @@ GeomCol <- ggproto("GeomCol", GeomRect, flip_data(data, params$flipped_aes) }, - draw_panel = function(self, data, panel_params, coord, width = NULL, flipped_aes = FALSE) { + draw_panel = function(self, data, panel_params, coord, lineend = "butt", + linejoin = "mitre", width = NULL, flipped_aes = FALSE) { # Hack to ensure that width is detected as a parameter - ggproto_parent(GeomRect, self)$draw_panel(data, panel_params, coord) + ggproto_parent(GeomRect, self)$draw_panel( + data, + panel_params, + coord, + lineend = lineend, + linejoin = linejoin + ) } ) diff --git a/R/geom-crossbar.r b/R/geom-crossbar.r index 05fa058460..89c1c60cff 100644 --- a/R/geom-crossbar.r +++ b/R/geom-crossbar.r @@ -47,7 +47,9 @@ GeomCrossbar <- ggproto("GeomCrossbar", Geom, draw_key = draw_key_crossbar, - draw_panel = function(data, panel_params, coord, fatten = 2.5, width = NULL, flipped_aes = FALSE) { + draw_panel = function(data, panel_params, coord, lineend = "butt", + linejoin = "mitre", fatten = 2.5, width = NULL, + flipped_aes = FALSE) { data <- flip_data(data, flipped_aes) middle <- transform(data, x = xmin, xend = xmax, yend = y, size = size * fatten, alpha = NA) @@ -99,8 +101,8 @@ GeomCrossbar <- ggproto("GeomCrossbar", Geom, middle <- flip_data(middle, flipped_aes) ggname("geom_crossbar", gTree(children = gList( - GeomPolygon$draw_panel(box, panel_params, coord), - GeomSegment$draw_panel(middle, panel_params, coord) + GeomPolygon$draw_panel(box, panel_params, coord, lineend = lineend, linejoin = linejoin), + GeomSegment$draw_panel(middle, panel_params, coord, lineend = lineend, linejoin = linejoin) ))) } ) diff --git a/R/geom-dotplot.r b/R/geom-dotplot.r index 9b34e517f1..e866e834a0 100644 --- a/R/geom-dotplot.r +++ b/R/geom-dotplot.r @@ -264,7 +264,7 @@ GeomDotplot <- ggproto("GeomDotplot", Geom, }, - draw_group = function(data, panel_params, coord, na.rm = FALSE, + draw_group = function(data, panel_params, coord, lineend = "butt", na.rm = FALSE, binaxis = "x", stackdir = "up", stackratio = 1, dotsize = 1, stackgroups = FALSE) { if (!coord$is_linear()) { @@ -292,7 +292,8 @@ GeomDotplot <- ggproto("GeomDotplot", Geom, default.units = "npc", gp = gpar(col = alpha(tdata$colour, tdata$alpha), fill = alpha(tdata$fill, tdata$alpha), - lwd = tdata$stroke, lty = tdata$linetype)) + lwd = tdata$stroke, lty = tdata$linetype, + lineend = lineend)) ) }, diff --git a/R/geom-errorbar.r b/R/geom-errorbar.r index 4840d75d10..dd2cfd5551 100644 --- a/R/geom-errorbar.r +++ b/R/geom-errorbar.r @@ -52,7 +52,7 @@ GeomErrorbar <- ggproto("GeomErrorbar", Geom, flip_data(data, params$flipped_aes) }, - draw_panel = function(data, panel_params, coord, width = NULL, flipped_aes = FALSE) { + draw_panel = function(data, panel_params, coord, lineend = "butt", width = NULL, flipped_aes = FALSE) { data <- flip_data(data, flipped_aes) x <- as.vector(rbind(data$xmin, data$xmax, NA, data$x, data$x, NA, data$xmin, data$xmax)) y <- as.vector(rbind(data$ymax, data$ymax, NA, data$ymax, data$ymin, NA, data$ymin, data$ymin)) @@ -67,6 +67,6 @@ GeomErrorbar <- ggproto("GeomErrorbar", Geom, row.names = 1:(nrow(data) * 8) )) data <- flip_data(data, flipped_aes) - GeomPath$draw_panel(data, panel_params, coord) + GeomPath$draw_panel(data, panel_params, coord, lineend = lineend) } ) diff --git a/R/geom-errorbarh.r b/R/geom-errorbarh.r index 7c48dd9f5c..91d3569e86 100644 --- a/R/geom-errorbarh.r +++ b/R/geom-errorbarh.r @@ -67,7 +67,7 @@ GeomErrorbarh <- ggproto("GeomErrorbarh", Geom, ) }, - draw_panel = function(data, panel_params, coord, height = NULL) { + draw_panel = function(data, panel_params, coord, height = NULL, lineend = "butt") { GeomPath$draw_panel(new_data_frame(list( x = as.vector(rbind(data$xmax, data$xmax, NA, data$xmax, data$xmin, NA, data$xmin, data$xmin)), y = as.vector(rbind(data$ymin, data$ymax, NA, data$y, data$y, NA, data$ymin, data$ymax)), @@ -77,6 +77,6 @@ GeomErrorbarh <- ggproto("GeomErrorbarh", Geom, linetype = rep(data$linetype, each = 8), group = rep(1:(nrow(data)), each = 8), row.names = 1:(nrow(data) * 8) - )), panel_params, coord) + )), panel_params, coord, lineend = lineend) } ) diff --git a/R/geom-hex.r b/R/geom-hex.r index 6879038724..2e18b221e9 100644 --- a/R/geom-hex.r +++ b/R/geom-hex.r @@ -54,7 +54,8 @@ geom_hex <- function(mapping = NULL, data = NULL, #' @usage NULL #' @export GeomHex <- ggproto("GeomHex", Geom, - draw_group = function(data, panel_params, coord) { + draw_group = function(data, panel_params, coord, lineend = "butt", + linejoin = "mitre", linemitre = 10) { if (!inherits(coord, "CoordCartesian")) { abort("geom_hex() only works with Cartesian coordinates") } @@ -66,7 +67,10 @@ GeomHex <- ggproto("GeomHex", Geom, col = coords$colour, fill = alpha(coords$fill, coords$alpha), lwd = coords$size * .pt, - lty = coords$linetype + lty = coords$linetype, + lineend = lineend, + linejoin = linejoin, + linemitre = linemitre ) )) }, diff --git a/R/geom-hline.r b/R/geom-hline.r index d242f74b08..8e0151d012 100644 --- a/R/geom-hline.r +++ b/R/geom-hline.r @@ -44,7 +44,7 @@ geom_hline <- function(mapping = NULL, data = NULL, #' @usage NULL #' @export GeomHline <- ggproto("GeomHline", Geom, - draw_panel = function(data, panel_params, coord) { + draw_panel = function(data, panel_params, coord, lineend = "butt") { ranges <- coord$backtransform_range(panel_params) data$x <- ranges$x[1] @@ -52,7 +52,7 @@ GeomHline <- ggproto("GeomHline", Geom, data$y <- data$yintercept data$yend <- data$yintercept - GeomSegment$draw_panel(unique(data), panel_params, coord) + GeomSegment$draw_panel(unique(data), panel_params, coord, lineend = lineend) }, default_aes = aes(colour = "black", size = 0.5, linetype = 1, alpha = NA), diff --git a/R/geom-linerange.r b/R/geom-linerange.r index 005f93de3a..5e9462013b 100644 --- a/R/geom-linerange.r +++ b/R/geom-linerange.r @@ -113,10 +113,10 @@ GeomLinerange <- ggproto("GeomLinerange", Geom, data }, - draw_panel = function(data, panel_params, coord, flipped_aes = FALSE) { + draw_panel = function(data, panel_params, coord, lineend = "butt", flipped_aes = FALSE) { data <- flip_data(data, flipped_aes) data <- transform(data, xend = x, y = ymin, yend = ymax) data <- flip_data(data, flipped_aes) - ggname("geom_linerange", GeomSegment$draw_panel(data, panel_params, coord)) + ggname("geom_linerange", GeomSegment$draw_panel(data, panel_params, coord, lineend = lineend)) } ) diff --git a/R/geom-map.r b/R/geom-map.r index 031e0c5b91..8690063fd3 100644 --- a/R/geom-map.r +++ b/R/geom-map.r @@ -105,7 +105,8 @@ geom_map <- function(mapping = NULL, data = NULL, #' @usage NULL #' @export GeomMap <- ggproto("GeomMap", GeomPolygon, - draw_panel = function(data, panel_params, coord, map) { + draw_panel = function(data, panel_params, coord, lineend = "butt", + linejoin = "round", linemitre = 10, map) { # Only use matching data and map ids common <- intersect(data$map_id, map$id) data <- data[data$map_id %in% common, , drop = FALSE] @@ -123,8 +124,12 @@ GeomMap <- ggproto("GeomMap", GeomPolygon, polygonGrob(coords$x, coords$y, default.units = "native", id = grob_id, gp = gpar( - col = data$colour, fill = alpha(data$fill, data$alpha), - lwd = data$size * .pt + col = data$colour, + fill = alpha(data$fill, data$alpha), + lwd = data$size * .pt, + lineend = lineend, + linejoin = linejoin, + linemitre = linemitre ) ) }, diff --git a/R/geom-pointrange.r b/R/geom-pointrange.r index 5b018c1253..834a4f9f8a 100644 --- a/R/geom-pointrange.r +++ b/R/geom-pointrange.r @@ -47,13 +47,13 @@ GeomPointrange <- ggproto("GeomPointrange", Geom, GeomLinerange$setup_data(data, params) }, - draw_panel = function(data, panel_params, coord, fatten = 4, flipped_aes = FALSE) { + draw_panel = function(data, panel_params, coord, lineend = "butt", fatten = 4, flipped_aes = FALSE) { if (is.null(data[[flipped_names(flipped_aes)$y]])) - return(GeomLinerange$draw_panel(data, panel_params, coord, flipped_aes = flipped_aes)) + return(GeomLinerange$draw_panel(data, panel_params, coord, lineend = lineend, flipped_aes = flipped_aes)) ggname("geom_pointrange", gTree(children = gList( - GeomLinerange$draw_panel(data, panel_params, coord, flipped_aes = flipped_aes), + GeomLinerange$draw_panel(data, panel_params, coord, lineend = lineend, flipped_aes = flipped_aes), GeomPoint$draw_panel(transform(data, size = size * fatten), panel_params, coord) )) ) diff --git a/R/geom-polygon.r b/R/geom-polygon.r index f44ae4d633..585b6e437d 100644 --- a/R/geom-polygon.r +++ b/R/geom-polygon.r @@ -106,7 +106,8 @@ geom_polygon <- function(mapping = NULL, data = NULL, #' @usage NULL #' @export GeomPolygon <- ggproto("GeomPolygon", Geom, - draw_panel = function(data, panel_params, coord, rule = "evenodd") { + draw_panel = function(data, panel_params, coord, rule = "evenodd", lineend = "butt", + linejoin = "round", linemitre = 10) { n <- nrow(data) if (n == 1) return(zeroGrob()) @@ -131,7 +132,10 @@ GeomPolygon <- ggproto("GeomPolygon", Geom, col = first_rows$colour, fill = alpha(first_rows$fill, first_rows$alpha), lwd = first_rows$size * .pt, - lty = first_rows$linetype + lty = first_rows$linetype, + lineend = lineend, + linejoin = linejoin, + linemitre = linemitre ) ) ) @@ -159,7 +163,10 @@ GeomPolygon <- ggproto("GeomPolygon", Geom, col = first_rows$colour, fill = alpha(first_rows$fill, first_rows$alpha), lwd = first_rows$size * .pt, - lty = first_rows$linetype + lty = first_rows$linetype, + lineend = lineend, + linejoin = linejoin, + linemitre = linemitre ) ) ) diff --git a/R/geom-rect.r b/R/geom-rect.r index 95cf0383e6..aa490b27e8 100644 --- a/R/geom-rect.r +++ b/R/geom-rect.r @@ -33,7 +33,7 @@ GeomRect <- ggproto("GeomRect", Geom, required_aes = c("xmin", "xmax", "ymin", "ymax"), - draw_panel = function(self, data, panel_params, coord, linejoin = "mitre") { + draw_panel = function(self, data, panel_params, coord, lineend = "butt", linejoin = "mitre") { if (!coord$is_linear()) { aesthetics <- setdiff( names(data), c("x", "y", "xmin", "xmax", "ymin", "ymax") @@ -43,7 +43,7 @@ GeomRect <- ggproto("GeomRect", Geom, poly <- rect_to_poly(row$xmin, row$xmax, row$ymin, row$ymax) aes <- new_data_frame(row[aesthetics])[rep(1,5), ] - GeomPolygon$draw_panel(cbind(poly, aes), panel_params, coord) + GeomPolygon$draw_panel(cbind(poly, aes), panel_params, coord, lineend = lineend, linejoin = linejoin) }) ggname("bar", do.call("grobTree", polys)) @@ -61,9 +61,7 @@ GeomRect <- ggproto("GeomRect", Geom, lwd = coords$size * .pt, lty = coords$linetype, linejoin = linejoin, - # `lineend` is a workaround for Windows and intentionally kept unexposed - # as an argument. (c.f. https://github.com/tidyverse/ggplot2/issues/3037#issuecomment-457504667) - lineend = if (identical(linejoin, "round")) "round" else "square" + lineend = lineend ) )) } diff --git a/R/geom-ribbon.r b/R/geom-ribbon.r index d2907e8150..8e7bd29570 100644 --- a/R/geom-ribbon.r +++ b/R/geom-ribbon.r @@ -104,7 +104,9 @@ GeomRibbon <- ggproto("GeomRibbon", Geom, data }, - draw_group = function(data, panel_params, coord, na.rm = FALSE, flipped_aes = FALSE, outline.type = "both") { + draw_group = function(data, panel_params, coord, lineend = "butt", + linejoin = "round", linemitre = 10, na.rm = FALSE, + flipped_aes = FALSE, outline.type = "both") { data <- flip_data(data, flipped_aes) if (na.rm) data <- data[stats::complete.cases(data[c("x", "ymin", "ymax")]), ] data <- data[order(data$group), ] @@ -158,7 +160,10 @@ GeomRibbon <- ggproto("GeomRibbon", Geom, fill = alpha(aes$fill, aes$alpha), col = if (is_full_outline) aes$colour else NA, lwd = if (is_full_outline) aes$size * .pt else 0, - lty = if (is_full_outline) aes$linetype else 1 + lty = if (is_full_outline) aes$linetype else 1, + lineend = lineend, + linejoin = linejoin, + linemitre = linemitre ) ) @@ -181,7 +186,11 @@ GeomRibbon <- ggproto("GeomRibbon", Geom, gp = gpar( col = aes$colour, lwd = aes$size * .pt, - lty = aes$linetype) + lty = aes$linetype, + lineend = lineend, + linejoin = linejoin, + linemitre = linemitre + ) ) ggname("geom_ribbon", grobTree(g_poly, g_lines)) diff --git a/R/geom-rug.r b/R/geom-rug.r index 2180a4286a..68e46a17f8 100644 --- a/R/geom-rug.r +++ b/R/geom-rug.r @@ -88,7 +88,8 @@ geom_rug <- function(mapping = NULL, data = NULL, GeomRug <- ggproto("GeomRug", Geom, optional_aes = c("x", "y"), - draw_panel = function(data, panel_params, coord, sides = "bl", outside = FALSE, length = unit(0.03, "npc")) { + draw_panel = function(data, panel_params, coord, lineend = "butt", sides = "bl", + outside = FALSE, length = unit(0.03, "npc")) { if (!inherits(length, "unit")) { abort("'length' must be a 'unit' object.") } @@ -108,7 +109,12 @@ GeomRug <- ggproto("GeomRug", Geom, list(min = -1 * length, max = unit(1, "npc") + length) } - gp <- gpar(col = alpha(data$colour, data$alpha), lty = data$linetype, lwd = data$size * .pt) + gp <- gpar( + col = alpha(data$colour, data$alpha), + lty = data$linetype, + lwd = data$size * .pt, + lineend = lineend + ) if (!is.null(data$x)) { if (grepl("b", sides)) { rugs$x_b <- segmentsGrob( diff --git a/R/geom-smooth.r b/R/geom-smooth.r index 05bd1a8f29..5b94f4b070 100644 --- a/R/geom-smooth.r +++ b/R/geom-smooth.r @@ -139,7 +139,8 @@ GeomSmooth <- ggproto("GeomSmooth", Geom, # ribbon won't be drawn either in that case, keeping the overall # behavior predictable and sensible. The user will realize that they # need to set `se = TRUE` to obtain the ribbon and the legend key. - draw_group = function(data, panel_params, coord, se = FALSE, flipped_aes = FALSE) { + draw_group = function(data, panel_params, coord, lineend = "butt", linejoin = "round", + linemitre = 10, se = FALSE, flipped_aes = FALSE) { ribbon <- transform(data, colour = NA) path <- transform(data, alpha = NA) @@ -149,7 +150,7 @@ GeomSmooth <- ggproto("GeomSmooth", Geom, gList( if (has_ribbon) GeomRibbon$draw_group(ribbon, panel_params, coord, flipped_aes = flipped_aes), - GeomLine$draw_panel(path, panel_params, coord) + GeomLine$draw_panel(path, panel_params, coord, lineend = lineend, linejoin = linejoin, linemitre = linemitre) ) }, diff --git a/R/geom-violin.r b/R/geom-violin.r index daad68f4d0..fe8e710389 100644 --- a/R/geom-violin.r +++ b/R/geom-violin.r @@ -120,7 +120,7 @@ GeomViolin <- ggproto("GeomViolin", Geom, params }, - extra_params = c("na.rm", "orientation"), + extra_params = c("na.rm", "orientation", "lineend", "linejoin", "linemitre"), setup_data = function(data, params) { data$flipped_aes <- params$flipped_aes diff --git a/R/geom-vline.r b/R/geom-vline.r index 3c22e0b1c9..c92d34d8c4 100644 --- a/R/geom-vline.r +++ b/R/geom-vline.r @@ -44,7 +44,7 @@ geom_vline <- function(mapping = NULL, data = NULL, #' @usage NULL #' @export GeomVline <- ggproto("GeomVline", Geom, - draw_panel = function(data, panel_params, coord) { + draw_panel = function(data, panel_params, coord, lineend = "butt") { ranges <- coord$backtransform_range(panel_params) data$x <- data$xintercept @@ -52,7 +52,7 @@ GeomVline <- ggproto("GeomVline", Geom, data$y <- ranges$y[1] data$yend <- ranges$y[2] - GeomSegment$draw_panel(unique(data), panel_params, coord) + GeomSegment$draw_panel(unique(data), panel_params, coord, lineend = lineend) }, default_aes = aes(colour = "black", size = 0.5, linetype = 1, alpha = NA), diff --git a/R/legend-draw.r b/R/legend-draw.r index 04266da417..ac02b97fea 100644 --- a/R/legend-draw.r +++ b/R/legend-draw.r @@ -49,7 +49,7 @@ draw_key_abline <- function(data, params, size) { col = alpha(data$colour %||% data$fill %||% "black", data$alpha), lwd = (data$size %||% 0.5) * .pt, lty = data$linetype %||% 1, - lineend = "butt" + lineend = params$lineend %||% "butt" ) ) } @@ -81,9 +81,7 @@ draw_key_polygon <- function(data, params, size) { lty = data$linetype %||% 1, lwd = lwd * .pt, linejoin = params$linejoin %||% "mitre", - # `lineend` is a workaround for Windows and intentionally kept unexposed - # as an argument. (c.f. https://github.com/tidyverse/ggplot2/issues/3037#issuecomment-457504667) - lineend = if (identical(params$linejoin, "round")) "round" else "square" + lineend = params$lineend %||% "butt" )) } @@ -105,7 +103,9 @@ draw_key_boxplot <- function(data, params, size) { col = data$colour %||% "grey20", fill = alpha(data$fill %||% "white", data$alpha), lwd = (data$size %||% 0.5) * .pt, - lty = data$linetype %||% 1 + lty = data$linetype %||% 1, + lineend = params$lineend %||% "butt", + linejoin = params$linejoin %||% "mitre" ) ) } @@ -120,7 +120,9 @@ draw_key_crossbar <- function(data, params, size) { col = data$colour %||% "grey20", fill = alpha(data$fill %||% "white", data$alpha), lwd = (data$size %||% 0.5) * .pt, - lty = data$linetype %||% 1 + lty = data$linetype %||% 1, + lineend = params$lineend %||% "butt", + linejoin = params$linejoin %||% "mitre" ) ) } @@ -141,7 +143,7 @@ draw_key_path <- function(data, params, size) { %||% data$fill %||% "black", data$alpha), lwd = (data$size %||% 0.5) * .pt, lty = data$linetype %||% 1, - lineend = "butt" + lineend = params$lineend %||% "butt" ), arrow = params$arrow ) @@ -155,7 +157,7 @@ draw_key_vpath <- function(data, params, size) { col = alpha(data$colour %||% data$fill %||% "black", data$alpha), lwd = (data$size %||% 0.5) * .pt, lty = data$linetype %||% 1, - lineend = "butt" + lineend = params$lineend %||% "butt" ), arrow = params$arrow ) @@ -168,7 +170,9 @@ draw_key_dotplot <- function(data, params, size) { pch = 21, gp = gpar( col = alpha(data$colour %||% "black", data$alpha), - fill = alpha(data$fill %||% "black", data$alpha) + fill = alpha(data$fill %||% "black", data$alpha), + lty = data$linetype %||% 1, + lineend = params$lineend %||% "butt" ) ) } @@ -227,7 +231,7 @@ draw_key_vline <- function(data, params, size) { col = alpha(data$colour %||% data$fill %||% "black", data$alpha), lwd = (data$size %||% 0.5) * .pt, lty = data$linetype %||% 1, - lineend = "butt" + lineend = params$lineend %||% "butt" ) ) } @@ -248,7 +252,8 @@ draw_key_timeseries <- function(data, params, size) { col = alpha(data$colour %||% data$fill %||% "black", data$alpha), lwd = (data$size %||% 0.5) * .pt, lty = data$linetype %||% 1, - lineend = "butt" + lineend = params$lineend %||% "butt", + linejoin = params$linejoin %||% "round" ) ) } diff --git a/tests/testthat/_snaps/aes/stat-count-width-0-5.svg b/tests/testthat/_snaps/aes/stat-count-width-0-5.svg index e983a40604..75f21c1381 100644 --- a/tests/testthat/_snaps/aes/stat-count-width-0-5.svg +++ b/tests/testthat/_snaps/aes/stat-count-width-0-5.svg @@ -27,9 +27,9 @@ - - - + + + diff --git a/tests/testthat/_snaps/aes/stat-count.svg b/tests/testthat/_snaps/aes/stat-count.svg index c3f3abbb96..a0e4f01dfd 100644 --- a/tests/testthat/_snaps/aes/stat-count.svg +++ b/tests/testthat/_snaps/aes/stat-count.svg @@ -27,9 +27,9 @@ - - - + + + diff --git a/tests/testthat/_snaps/aes/stat-identity-width-0-5.svg b/tests/testthat/_snaps/aes/stat-identity-width-0-5.svg index e669375ed3..145618e608 100644 --- a/tests/testthat/_snaps/aes/stat-identity-width-0-5.svg +++ b/tests/testthat/_snaps/aes/stat-identity-width-0-5.svg @@ -27,9 +27,9 @@ - - - + + + diff --git a/tests/testthat/_snaps/aes/stat-identity.svg b/tests/testthat/_snaps/aes/stat-identity.svg index c7707bd82c..03ab4b2621 100644 --- a/tests/testthat/_snaps/aes/stat-identity.svg +++ b/tests/testthat/_snaps/aes/stat-identity.svg @@ -27,9 +27,9 @@ - - - + + + diff --git a/tests/testthat/_snaps/coord-map/coord-map-switched-scale-position.svg b/tests/testthat/_snaps/coord-map/coord-map-switched-scale-position.svg index 44b8697d86..3d5fa0b240 100644 --- a/tests/testthat/_snaps/coord-map/coord-map-switched-scale-position.svg +++ b/tests/testthat/_snaps/coord-map/coord-map-switched-scale-position.svg @@ -36,16 +36,16 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/tests/testthat/_snaps/coord-map/usa-mercator.svg b/tests/testthat/_snaps/coord-map/usa-mercator.svg index de2a70c04f..c6a2038aba 100644 --- a/tests/testthat/_snaps/coord-map/usa-mercator.svg +++ b/tests/testthat/_snaps/coord-map/usa-mercator.svg @@ -36,16 +36,16 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/tests/testthat/_snaps/coord-polar/racetrack-plot-closed-and-has-center-hole.svg b/tests/testthat/_snaps/coord-polar/racetrack-plot-closed-and-has-center-hole.svg index f92366fdaf..d5a1760e83 100644 --- a/tests/testthat/_snaps/coord-polar/racetrack-plot-closed-and-has-center-hole.svg +++ b/tests/testthat/_snaps/coord-polar/racetrack-plot-closed-and-has-center-hole.svg @@ -44,9 +44,9 @@ - - - + + + 1 2 0/3 diff --git a/tests/testthat/_snaps/coord-polar/racetrack-plot-closed-and-no-center-hole.svg b/tests/testthat/_snaps/coord-polar/racetrack-plot-closed-and-no-center-hole.svg index a920ac8382..56a632f253 100644 --- a/tests/testthat/_snaps/coord-polar/racetrack-plot-closed-and-no-center-hole.svg +++ b/tests/testthat/_snaps/coord-polar/racetrack-plot-closed-and-no-center-hole.svg @@ -44,9 +44,9 @@ - - - + + + 1 2 0/3 diff --git a/tests/testthat/_snaps/coord-polar/rose-plot-with-has-equal-spacing.svg b/tests/testthat/_snaps/coord-polar/rose-plot-with-has-equal-spacing.svg index ea6d713540..c9b4539265 100644 --- a/tests/testthat/_snaps/coord-polar/rose-plot-with-has-equal-spacing.svg +++ b/tests/testthat/_snaps/coord-polar/rose-plot-with-has-equal-spacing.svg @@ -44,9 +44,9 @@ - - - + + + A B C diff --git a/tests/testthat/_snaps/draw-key/rectangle-and-dotplot-key-glyphs.svg b/tests/testthat/_snaps/draw-key/rectangle-and-dotplot-key-glyphs.svg index b777379e15..50ab636187 100644 --- a/tests/testthat/_snaps/draw-key/rectangle-and-dotplot-key-glyphs.svg +++ b/tests/testthat/_snaps/draw-key/rectangle-and-dotplot-key-glyphs.svg @@ -64,11 +64,11 @@ z - + - + - + a b c diff --git a/tests/testthat/_snaps/draw-key/time-series-and-polygon-key-glyphs.svg b/tests/testthat/_snaps/draw-key/time-series-and-polygon-key-glyphs.svg index 9f3f1b321c..e8e6e2e746 100644 --- a/tests/testthat/_snaps/draw-key/time-series-and-polygon-key-glyphs.svg +++ b/tests/testthat/_snaps/draw-key/time-series-and-polygon-key-glyphs.svg @@ -64,11 +64,11 @@ z - + - + - + a b c diff --git a/tests/testthat/_snaps/geom-boxplot/outlier-colours.svg b/tests/testthat/_snaps/geom-boxplot/outlier-colours.svg index 9fe68765e5..c3fcba0018 100644 --- a/tests/testthat/_snaps/geom-boxplot/outlier-colours.svg +++ b/tests/testthat/_snaps/geom-boxplot/outlier-colours.svg @@ -30,20 +30,20 @@ - - + + - - + + - - + + @@ -68,20 +68,20 @@ factor(cyl) - - - - + + + + - - - - + + + + - - - - + + + + 4 6 8 diff --git a/tests/testthat/_snaps/geom-dotplot/2-na-values-bin-along-y-stack-center.svg b/tests/testthat/_snaps/geom-dotplot/2-na-values-bin-along-y-stack-center.svg index 1dc6177a07..ee7f42c683 100644 --- a/tests/testthat/_snaps/geom-dotplot/2-na-values-bin-along-y-stack-center.svg +++ b/tests/testthat/_snaps/geom-dotplot/2-na-values-bin-along-y-stack-center.svg @@ -27,24 +27,24 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + diff --git a/tests/testthat/_snaps/geom-dotplot/2-na-values-dot-density-binning-binwidth-4.svg b/tests/testthat/_snaps/geom-dotplot/2-na-values-dot-density-binning-binwidth-4.svg index 60d7a9c242..931ddb6bd0 100644 --- a/tests/testthat/_snaps/geom-dotplot/2-na-values-dot-density-binning-binwidth-4.svg +++ b/tests/testthat/_snaps/geom-dotplot/2-na-values-dot-density-binning-binwidth-4.svg @@ -27,24 +27,24 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + diff --git a/tests/testthat/_snaps/geom-dotplot/3-stackgroups-bin-y-histodot.svg b/tests/testthat/_snaps/geom-dotplot/3-stackgroups-bin-y-histodot.svg index 98fb6ca6e1..b6b299a280 100644 --- a/tests/testthat/_snaps/geom-dotplot/3-stackgroups-bin-y-histodot.svg +++ b/tests/testthat/_snaps/geom-dotplot/3-stackgroups-bin-y-histodot.svg @@ -27,96 +27,96 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -143,11 +143,11 @@ x - + - + - + A B C diff --git a/tests/testthat/_snaps/geom-dotplot/3-stackgroups-dot-density-with-aligned-bins.svg b/tests/testthat/_snaps/geom-dotplot/3-stackgroups-dot-density-with-aligned-bins.svg index 46d3c57a45..edc50a7707 100644 --- a/tests/testthat/_snaps/geom-dotplot/3-stackgroups-dot-density-with-aligned-bins.svg +++ b/tests/testthat/_snaps/geom-dotplot/3-stackgroups-dot-density-with-aligned-bins.svg @@ -27,96 +27,96 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -145,11 +145,11 @@ x - + - + - + A B C diff --git a/tests/testthat/_snaps/geom-dotplot/3-stackgroups-histodot.svg b/tests/testthat/_snaps/geom-dotplot/3-stackgroups-histodot.svg index c5590ea87c..54ffd9c078 100644 --- a/tests/testthat/_snaps/geom-dotplot/3-stackgroups-histodot.svg +++ b/tests/testthat/_snaps/geom-dotplot/3-stackgroups-histodot.svg @@ -27,96 +27,96 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -145,11 +145,11 @@ x - + - + - + A B C diff --git a/tests/testthat/_snaps/geom-dotplot/basic-dotplot-with-dot-density-binning-binwidth-4.svg b/tests/testthat/_snaps/geom-dotplot/basic-dotplot-with-dot-density-binning-binwidth-4.svg index 9cff877a24..fce6bcf822 100644 --- a/tests/testthat/_snaps/geom-dotplot/basic-dotplot-with-dot-density-binning-binwidth-4.svg +++ b/tests/testthat/_snaps/geom-dotplot/basic-dotplot-with-dot-density-binning-binwidth-4.svg @@ -27,26 +27,26 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/tests/testthat/_snaps/geom-dotplot/bin-along-y-stack-center.svg b/tests/testthat/_snaps/geom-dotplot/bin-along-y-stack-center.svg index 88b364c02a..0797211f1b 100644 --- a/tests/testthat/_snaps/geom-dotplot/bin-along-y-stack-center.svg +++ b/tests/testthat/_snaps/geom-dotplot/bin-along-y-stack-center.svg @@ -27,26 +27,26 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/tests/testthat/_snaps/geom-dotplot/bin-along-y-stack-centerwhole-histodot.svg b/tests/testthat/_snaps/geom-dotplot/bin-along-y-stack-centerwhole-histodot.svg index ebe5b625d3..1279678b43 100644 --- a/tests/testthat/_snaps/geom-dotplot/bin-along-y-stack-centerwhole-histodot.svg +++ b/tests/testthat/_snaps/geom-dotplot/bin-along-y-stack-centerwhole-histodot.svg @@ -27,26 +27,26 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/tests/testthat/_snaps/geom-dotplot/bin-along-y-stack-centerwhole.svg b/tests/testthat/_snaps/geom-dotplot/bin-along-y-stack-centerwhole.svg index 195f4e2d30..ac56bcc32e 100644 --- a/tests/testthat/_snaps/geom-dotplot/bin-along-y-stack-centerwhole.svg +++ b/tests/testthat/_snaps/geom-dotplot/bin-along-y-stack-centerwhole.svg @@ -27,26 +27,26 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/tests/testthat/_snaps/geom-dotplot/bin-y-continous-x-axis-grouping-by-x.svg b/tests/testthat/_snaps/geom-dotplot/bin-y-continous-x-axis-grouping-by-x.svg index 5081a3f5fb..b3a2cfb7a9 100644 --- a/tests/testthat/_snaps/geom-dotplot/bin-y-continous-x-axis-grouping-by-x.svg +++ b/tests/testthat/_snaps/geom-dotplot/bin-y-continous-x-axis-grouping-by-x.svg @@ -27,96 +27,96 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/testthat/_snaps/geom-dotplot/bin-y-continous-x-axis-single-x-group.svg b/tests/testthat/_snaps/geom-dotplot/bin-y-continous-x-axis-single-x-group.svg index a4ee53e833..ff735eed28 100644 --- a/tests/testthat/_snaps/geom-dotplot/bin-y-continous-x-axis-single-x-group.svg +++ b/tests/testthat/_snaps/geom-dotplot/bin-y-continous-x-axis-single-x-group.svg @@ -27,96 +27,96 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/testthat/_snaps/geom-dotplot/bin-y-dodged-coord-flip.svg b/tests/testthat/_snaps/geom-dotplot/bin-y-dodged-coord-flip.svg index e8bea27789..6207f07469 100644 --- a/tests/testthat/_snaps/geom-dotplot/bin-y-dodged-coord-flip.svg +++ b/tests/testthat/_snaps/geom-dotplot/bin-y-dodged-coord-flip.svg @@ -27,96 +27,96 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -153,11 +153,11 @@ x - + - + - + A B C diff --git a/tests/testthat/_snaps/geom-dotplot/bin-y-dodged.svg b/tests/testthat/_snaps/geom-dotplot/bin-y-dodged.svg index 883307c0de..69382b9e60 100644 --- a/tests/testthat/_snaps/geom-dotplot/bin-y-dodged.svg +++ b/tests/testthat/_snaps/geom-dotplot/bin-y-dodged.svg @@ -27,96 +27,96 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -153,11 +153,11 @@ x - + - + - + A B C diff --git a/tests/testthat/_snaps/geom-dotplot/bin-y-dodging-3-stackgroups-histodot.svg b/tests/testthat/_snaps/geom-dotplot/bin-y-dodging-3-stackgroups-histodot.svg index b93fe6d07c..627afeac6b 100644 --- a/tests/testthat/_snaps/geom-dotplot/bin-y-dodging-3-stackgroups-histodot.svg +++ b/tests/testthat/_snaps/geom-dotplot/bin-y-dodging-3-stackgroups-histodot.svg @@ -27,96 +27,96 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -141,9 +141,9 @@ g - + - + A B bin y, dodging, 3 stackgroups, histodot diff --git a/tests/testthat/_snaps/geom-dotplot/bin-y-three-x-groups-bins-aligned-across-groups.svg b/tests/testthat/_snaps/geom-dotplot/bin-y-three-x-groups-bins-aligned-across-groups.svg index 96f941b067..0a2f39ef67 100644 --- a/tests/testthat/_snaps/geom-dotplot/bin-y-three-x-groups-bins-aligned-across-groups.svg +++ b/tests/testthat/_snaps/geom-dotplot/bin-y-three-x-groups-bins-aligned-across-groups.svg @@ -27,96 +27,96 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/testthat/_snaps/geom-dotplot/bin-y-three-x-groups-bins-aligned-coord-flip.svg b/tests/testthat/_snaps/geom-dotplot/bin-y-three-x-groups-bins-aligned-coord-flip.svg index 6204deb780..701a120557 100644 --- a/tests/testthat/_snaps/geom-dotplot/bin-y-three-x-groups-bins-aligned-coord-flip.svg +++ b/tests/testthat/_snaps/geom-dotplot/bin-y-three-x-groups-bins-aligned-coord-flip.svg @@ -27,96 +27,96 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/testthat/_snaps/geom-dotplot/bin-y-three-x-groups-fill-and-dodge.svg b/tests/testthat/_snaps/geom-dotplot/bin-y-three-x-groups-fill-and-dodge.svg index e2e5527d47..fb1dd6c537 100644 --- a/tests/testthat/_snaps/geom-dotplot/bin-y-three-x-groups-fill-and-dodge.svg +++ b/tests/testthat/_snaps/geom-dotplot/bin-y-three-x-groups-fill-and-dodge.svg @@ -27,96 +27,96 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -159,9 +159,9 @@ g - + - + A B bin y, three x groups, fill and dodge diff --git a/tests/testthat/_snaps/geom-dotplot/bin-y-three-x-groups-stack-centerwhole.svg b/tests/testthat/_snaps/geom-dotplot/bin-y-three-x-groups-stack-centerwhole.svg index 184dd556f2..a782f80460 100644 --- a/tests/testthat/_snaps/geom-dotplot/bin-y-three-x-groups-stack-centerwhole.svg +++ b/tests/testthat/_snaps/geom-dotplot/bin-y-three-x-groups-stack-centerwhole.svg @@ -27,96 +27,96 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/testthat/_snaps/geom-dotplot/dots-stacked-closer-stackratio-5-fill-white.svg b/tests/testthat/_snaps/geom-dotplot/dots-stacked-closer-stackratio-5-fill-white.svg index 6112554a3e..49ab46365d 100644 --- a/tests/testthat/_snaps/geom-dotplot/dots-stacked-closer-stackratio-5-fill-white.svg +++ b/tests/testthat/_snaps/geom-dotplot/dots-stacked-closer-stackratio-5-fill-white.svg @@ -27,26 +27,26 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/tests/testthat/_snaps/geom-dotplot/facets-3-groups-histodot-stackgroups.svg b/tests/testthat/_snaps/geom-dotplot/facets-3-groups-histodot-stackgroups.svg index 33a7b0c0e0..5c6d72c63b 100644 --- a/tests/testthat/_snaps/geom-dotplot/facets-3-groups-histodot-stackgroups.svg +++ b/tests/testthat/_snaps/geom-dotplot/facets-3-groups-histodot-stackgroups.svg @@ -27,36 +27,36 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -68,36 +68,36 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -109,36 +109,36 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -220,9 +220,9 @@ g - + - + A B facets, 3 groups, histodot, stackgroups diff --git a/tests/testthat/_snaps/geom-dotplot/histodot-binning-equal-bin-spacing.svg b/tests/testthat/_snaps/geom-dotplot/histodot-binning-equal-bin-spacing.svg index 2d0906d883..9b77f25400 100644 --- a/tests/testthat/_snaps/geom-dotplot/histodot-binning-equal-bin-spacing.svg +++ b/tests/testthat/_snaps/geom-dotplot/histodot-binning-equal-bin-spacing.svg @@ -27,26 +27,26 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/tests/testthat/_snaps/geom-dotplot/larger-dots-dotsize-1-5-fill-white.svg b/tests/testthat/_snaps/geom-dotplot/larger-dots-dotsize-1-5-fill-white.svg index 46696349be..b6571b96ff 100644 --- a/tests/testthat/_snaps/geom-dotplot/larger-dots-dotsize-1-5-fill-white.svg +++ b/tests/testthat/_snaps/geom-dotplot/larger-dots-dotsize-1-5-fill-white.svg @@ -27,26 +27,26 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/tests/testthat/_snaps/geom-dotplot/multiple-groups-bins-aligned.svg b/tests/testthat/_snaps/geom-dotplot/multiple-groups-bins-aligned.svg index 186529d039..87ee8f32a6 100644 --- a/tests/testthat/_snaps/geom-dotplot/multiple-groups-bins-aligned.svg +++ b/tests/testthat/_snaps/geom-dotplot/multiple-groups-bins-aligned.svg @@ -27,26 +27,26 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + @@ -75,9 +75,9 @@ g - + - + A B multiple groups, bins aligned diff --git a/tests/testthat/_snaps/geom-dotplot/multiple-groups-bins-not-aligned.svg b/tests/testthat/_snaps/geom-dotplot/multiple-groups-bins-not-aligned.svg index 89c5c95ebc..452fb01b01 100644 --- a/tests/testthat/_snaps/geom-dotplot/multiple-groups-bins-not-aligned.svg +++ b/tests/testthat/_snaps/geom-dotplot/multiple-groups-bins-not-aligned.svg @@ -27,26 +27,26 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + @@ -75,9 +75,9 @@ g - + - + A B multiple groups, bins not aligned diff --git a/tests/testthat/_snaps/geom-dotplot/stack-center-with-coord-flip.svg b/tests/testthat/_snaps/geom-dotplot/stack-center-with-coord-flip.svg index 13432f057f..34f05a0dc5 100644 --- a/tests/testthat/_snaps/geom-dotplot/stack-center-with-coord-flip.svg +++ b/tests/testthat/_snaps/geom-dotplot/stack-center-with-coord-flip.svg @@ -27,26 +27,26 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/tests/testthat/_snaps/geom-dotplot/stack-center.svg b/tests/testthat/_snaps/geom-dotplot/stack-center.svg index 9bda01b0c3..e6b4f3ea2b 100644 --- a/tests/testthat/_snaps/geom-dotplot/stack-center.svg +++ b/tests/testthat/_snaps/geom-dotplot/stack-center.svg @@ -27,26 +27,26 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/tests/testthat/_snaps/geom-dotplot/stack-centerwhole-with-coord-flip.svg b/tests/testthat/_snaps/geom-dotplot/stack-centerwhole-with-coord-flip.svg index 51fc5d5ecb..bd3100d471 100644 --- a/tests/testthat/_snaps/geom-dotplot/stack-centerwhole-with-coord-flip.svg +++ b/tests/testthat/_snaps/geom-dotplot/stack-centerwhole-with-coord-flip.svg @@ -27,26 +27,26 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/tests/testthat/_snaps/geom-dotplot/stack-centerwhole.svg b/tests/testthat/_snaps/geom-dotplot/stack-centerwhole.svg index 349635d4e9..c210702dc4 100644 --- a/tests/testthat/_snaps/geom-dotplot/stack-centerwhole.svg +++ b/tests/testthat/_snaps/geom-dotplot/stack-centerwhole.svg @@ -27,26 +27,26 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/tests/testthat/_snaps/geom-dotplot/stack-down-with-coord-flip.svg b/tests/testthat/_snaps/geom-dotplot/stack-down-with-coord-flip.svg index e85720ceee..3e5936aee4 100644 --- a/tests/testthat/_snaps/geom-dotplot/stack-down-with-coord-flip.svg +++ b/tests/testthat/_snaps/geom-dotplot/stack-down-with-coord-flip.svg @@ -27,26 +27,26 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/tests/testthat/_snaps/geom-dotplot/stack-down.svg b/tests/testthat/_snaps/geom-dotplot/stack-down.svg index b85943c371..0bc2a3283d 100644 --- a/tests/testthat/_snaps/geom-dotplot/stack-down.svg +++ b/tests/testthat/_snaps/geom-dotplot/stack-down.svg @@ -27,26 +27,26 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/tests/testthat/_snaps/geom-dotplot/stack-up-with-coord-flip.svg b/tests/testthat/_snaps/geom-dotplot/stack-up-with-coord-flip.svg index 14ea4f7e97..8d7bf30ccd 100644 --- a/tests/testthat/_snaps/geom-dotplot/stack-up-with-coord-flip.svg +++ b/tests/testthat/_snaps/geom-dotplot/stack-up-with-coord-flip.svg @@ -27,26 +27,26 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/tests/testthat/_snaps/geom-dotplot/stack-up.svg b/tests/testthat/_snaps/geom-dotplot/stack-up.svg index fc804fdbee..267c45aabd 100644 --- a/tests/testthat/_snaps/geom-dotplot/stack-up.svg +++ b/tests/testthat/_snaps/geom-dotplot/stack-up.svg @@ -27,26 +27,26 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/tests/testthat/_snaps/geom-dotplot/variable-linetype-and-size-specified-as-aesthetics.svg b/tests/testthat/_snaps/geom-dotplot/variable-linetype-and-size-specified-as-aesthetics.svg index 39d778d6db..dd470e13d0 100644 --- a/tests/testthat/_snaps/geom-dotplot/variable-linetype-and-size-specified-as-aesthetics.svg +++ b/tests/testthat/_snaps/geom-dotplot/variable-linetype-and-size-specified-as-aesthetics.svg @@ -27,26 +27,26 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + @@ -75,23 +75,23 @@ rep(c("a", "b"), length.out = nrow(dat)) - + - + a b rep(c(1, 2), length.out = nrow(dat)) - + - + - + - + - + 1.00 1.25 1.50 diff --git a/tests/testthat/_snaps/geom-hline-vline-abline/cartesian-lines-intersect-mid-bars.svg b/tests/testthat/_snaps/geom-hline-vline-abline/cartesian-lines-intersect-mid-bars.svg index 7626c78bb6..f76c20a281 100644 --- a/tests/testthat/_snaps/geom-hline-vline-abline/cartesian-lines-intersect-mid-bars.svg +++ b/tests/testthat/_snaps/geom-hline-vline-abline/cartesian-lines-intersect-mid-bars.svg @@ -27,11 +27,11 @@ - - - - - + + + + + diff --git a/tests/testthat/_snaps/geom-hline-vline-abline/flipped-lines-intersect-mid-bars.svg b/tests/testthat/_snaps/geom-hline-vline-abline/flipped-lines-intersect-mid-bars.svg index 3f22659a78..bdda8286d6 100644 --- a/tests/testthat/_snaps/geom-hline-vline-abline/flipped-lines-intersect-mid-bars.svg +++ b/tests/testthat/_snaps/geom-hline-vline-abline/flipped-lines-intersect-mid-bars.svg @@ -27,11 +27,11 @@ - - - - - + + + + + diff --git a/tests/testthat/_snaps/geom-hline-vline-abline/polar-lines-intersect-mid-bars.svg b/tests/testthat/_snaps/geom-hline-vline-abline/polar-lines-intersect-mid-bars.svg index 9ac5fc7739..66a7e87a17 100644 --- a/tests/testthat/_snaps/geom-hline-vline-abline/polar-lines-intersect-mid-bars.svg +++ b/tests/testthat/_snaps/geom-hline-vline-abline/polar-lines-intersect-mid-bars.svg @@ -36,11 +36,11 @@ - - - - - + + + + + diff --git a/tests/testthat/_snaps/geom-polygon/basic-polygon-plot.svg b/tests/testthat/_snaps/geom-polygon/basic-polygon-plot.svg index 01e2e01c6f..e1a2dc6d8b 100644 --- a/tests/testthat/_snaps/geom-polygon/basic-polygon-plot.svg +++ b/tests/testthat/_snaps/geom-polygon/basic-polygon-plot.svg @@ -27,8 +27,8 @@ - - + + diff --git a/tests/testthat/_snaps/geom-smooth/ribbon-turned-on-in-geom-smooth.svg b/tests/testthat/_snaps/geom-smooth/ribbon-turned-on-in-geom-smooth.svg index f4e502e9be..429004d485 100644 --- a/tests/testthat/_snaps/geom-smooth/ribbon-turned-on-in-geom-smooth.svg +++ b/tests/testthat/_snaps/geom-smooth/ribbon-turned-on-in-geom-smooth.svg @@ -27,13 +27,13 @@ - - - + + + - - - + + + diff --git a/tests/testthat/_snaps/geom-violin/basic.svg b/tests/testthat/_snaps/geom-violin/basic.svg index 7b7b48e8e1..206a6b4626 100644 --- a/tests/testthat/_snaps/geom-violin/basic.svg +++ b/tests/testthat/_snaps/geom-violin/basic.svg @@ -27,9 +27,9 @@ - - - + + + diff --git a/tests/testthat/_snaps/geom-violin/continuous-x-axis-many-groups-center-should-be-at-2-0.svg b/tests/testthat/_snaps/geom-violin/continuous-x-axis-many-groups-center-should-be-at-2-0.svg index 8ae2a01166..f737690144 100644 --- a/tests/testthat/_snaps/geom-violin/continuous-x-axis-many-groups-center-should-be-at-2-0.svg +++ b/tests/testthat/_snaps/geom-violin/continuous-x-axis-many-groups-center-should-be-at-2-0.svg @@ -27,7 +27,7 @@ - + diff --git a/tests/testthat/_snaps/geom-violin/continuous-x-axis-single-group-center-should-be-at-1-0.svg b/tests/testthat/_snaps/geom-violin/continuous-x-axis-single-group-center-should-be-at-1-0.svg index be2909a5e3..f11a934abb 100644 --- a/tests/testthat/_snaps/geom-violin/continuous-x-axis-single-group-center-should-be-at-1-0.svg +++ b/tests/testthat/_snaps/geom-violin/continuous-x-axis-single-group-center-should-be-at-1-0.svg @@ -27,7 +27,7 @@ - + diff --git a/tests/testthat/_snaps/geom-violin/coord-flip.svg b/tests/testthat/_snaps/geom-violin/coord-flip.svg index de956c3d0c..434afe96c8 100644 --- a/tests/testthat/_snaps/geom-violin/coord-flip.svg +++ b/tests/testthat/_snaps/geom-violin/coord-flip.svg @@ -27,9 +27,9 @@ - - - + + + diff --git a/tests/testthat/_snaps/geom-violin/coord-polar.svg b/tests/testthat/_snaps/geom-violin/coord-polar.svg index aaf695e14d..e70e3b11f3 100644 --- a/tests/testthat/_snaps/geom-violin/coord-polar.svg +++ b/tests/testthat/_snaps/geom-violin/coord-polar.svg @@ -36,9 +36,9 @@ - - - + + + A B C diff --git a/tests/testthat/_snaps/geom-violin/dodging-and-coord-flip.svg b/tests/testthat/_snaps/geom-violin/dodging-and-coord-flip.svg index 485b5db7d2..86a328e5b5 100644 --- a/tests/testthat/_snaps/geom-violin/dodging-and-coord-flip.svg +++ b/tests/testthat/_snaps/geom-violin/dodging-and-coord-flip.svg @@ -27,9 +27,9 @@ - - - + + + @@ -54,11 +54,11 @@ x - + - + - + A B C diff --git a/tests/testthat/_snaps/geom-violin/dodging.svg b/tests/testthat/_snaps/geom-violin/dodging.svg index 305199eb22..c1ccf480ce 100644 --- a/tests/testthat/_snaps/geom-violin/dodging.svg +++ b/tests/testthat/_snaps/geom-violin/dodging.svg @@ -27,9 +27,9 @@ - - - + + + @@ -54,11 +54,11 @@ x - + - + - + A B C diff --git a/tests/testthat/_snaps/geom-violin/grouping-on-x-and-fill-dodge-width-0-5.svg b/tests/testthat/_snaps/geom-violin/grouping-on-x-and-fill-dodge-width-0-5.svg index 85ac63dec4..17142781de 100644 --- a/tests/testthat/_snaps/geom-violin/grouping-on-x-and-fill-dodge-width-0-5.svg +++ b/tests/testthat/_snaps/geom-violin/grouping-on-x-and-fill-dodge-width-0-5.svg @@ -27,12 +27,12 @@ - - - - - - + + + + + + @@ -53,9 +53,9 @@ g - + - + e f grouping on x and fill, dodge width = 0.5 diff --git a/tests/testthat/_snaps/geom-violin/grouping-on-x-and-fill.svg b/tests/testthat/_snaps/geom-violin/grouping-on-x-and-fill.svg index c74994eb8c..56049d8ef6 100644 --- a/tests/testthat/_snaps/geom-violin/grouping-on-x-and-fill.svg +++ b/tests/testthat/_snaps/geom-violin/grouping-on-x-and-fill.svg @@ -27,12 +27,12 @@ - - - - - - + + + + + + @@ -53,9 +53,9 @@ g - + - + e f grouping on x and fill diff --git a/tests/testthat/_snaps/geom-violin/narrower-width-5.svg b/tests/testthat/_snaps/geom-violin/narrower-width-5.svg index 0c0af24bef..d7a23e057b 100644 --- a/tests/testthat/_snaps/geom-violin/narrower-width-5.svg +++ b/tests/testthat/_snaps/geom-violin/narrower-width-5.svg @@ -27,9 +27,9 @@ - - - + + + diff --git a/tests/testthat/_snaps/geom-violin/quantiles.svg b/tests/testthat/_snaps/geom-violin/quantiles.svg index 1c8a03cc5d..8bec1ac1a6 100644 --- a/tests/testthat/_snaps/geom-violin/quantiles.svg +++ b/tests/testthat/_snaps/geom-violin/quantiles.svg @@ -27,15 +27,15 @@ - + - + - + diff --git a/tests/testthat/_snaps/geom-violin/scale-area-to-sample-size-c-is-smaller.svg b/tests/testthat/_snaps/geom-violin/scale-area-to-sample-size-c-is-smaller.svg index a2fd1b9e99..1c0bf845b4 100644 --- a/tests/testthat/_snaps/geom-violin/scale-area-to-sample-size-c-is-smaller.svg +++ b/tests/testthat/_snaps/geom-violin/scale-area-to-sample-size-c-is-smaller.svg @@ -27,9 +27,9 @@ - - - + + + diff --git a/tests/testthat/_snaps/geom-violin/with-smaller-bandwidth-and-points.svg b/tests/testthat/_snaps/geom-violin/with-smaller-bandwidth-and-points.svg index 134a00178e..1494c6bd08 100644 --- a/tests/testthat/_snaps/geom-violin/with-smaller-bandwidth-and-points.svg +++ b/tests/testthat/_snaps/geom-violin/with-smaller-bandwidth-and-points.svg @@ -27,9 +27,9 @@ - - - + + + diff --git a/tests/testthat/_snaps/geom-violin/with-tails-and-points.svg b/tests/testthat/_snaps/geom-violin/with-tails-and-points.svg index d2b441c84d..1db22dd441 100644 --- a/tests/testthat/_snaps/geom-violin/with-tails-and-points.svg +++ b/tests/testthat/_snaps/geom-violin/with-tails-and-points.svg @@ -27,9 +27,9 @@ - - - + + + diff --git a/tests/testthat/_snaps/guides/legend-inside-plot-bottom-left-of-legend-at-center.svg b/tests/testthat/_snaps/guides/legend-inside-plot-bottom-left-of-legend-at-center.svg index 2e2cb20118..5f20c97519 100644 --- a/tests/testthat/_snaps/guides/legend-inside-plot-bottom-left-of-legend-at-center.svg +++ b/tests/testthat/_snaps/guides/legend-inside-plot-bottom-left-of-legend-at-center.svg @@ -27,9 +27,9 @@ - - - + + + @@ -54,11 +54,11 @@ x - + - + - + A B C diff --git a/tests/testthat/_snaps/guides/legend-inside-plot-bottom-left.svg b/tests/testthat/_snaps/guides/legend-inside-plot-bottom-left.svg index 62007709dd..ee8bca179c 100644 --- a/tests/testthat/_snaps/guides/legend-inside-plot-bottom-left.svg +++ b/tests/testthat/_snaps/guides/legend-inside-plot-bottom-left.svg @@ -27,9 +27,9 @@ - - - + + + @@ -54,11 +54,11 @@ x - + - + - + A B C diff --git a/tests/testthat/_snaps/guides/legend-inside-plot-centered.svg b/tests/testthat/_snaps/guides/legend-inside-plot-centered.svg index b6edb4bece..1e2b923306 100644 --- a/tests/testthat/_snaps/guides/legend-inside-plot-centered.svg +++ b/tests/testthat/_snaps/guides/legend-inside-plot-centered.svg @@ -27,9 +27,9 @@ - - - + + + @@ -54,11 +54,11 @@ x - + - + - + A B C diff --git a/tests/testthat/_snaps/guides/legend-inside-plot-top-right.svg b/tests/testthat/_snaps/guides/legend-inside-plot-top-right.svg index ab25b11b5c..520196a2ab 100644 --- a/tests/testthat/_snaps/guides/legend-inside-plot-top-right.svg +++ b/tests/testthat/_snaps/guides/legend-inside-plot-top-right.svg @@ -27,9 +27,9 @@ - - - + + + @@ -54,11 +54,11 @@ x - + - + - + A B C diff --git a/tests/testthat/_snaps/guides/padding-in-legend-box.svg b/tests/testthat/_snaps/guides/padding-in-legend-box.svg index 1ad20d0047..22861ac8bc 100644 --- a/tests/testthat/_snaps/guides/padding-in-legend-box.svg +++ b/tests/testthat/_snaps/guides/padding-in-legend-box.svg @@ -27,9 +27,9 @@ - - - + + + @@ -54,11 +54,11 @@ x - + - + - + A B C diff --git a/tests/testthat/_snaps/position-stack/area-stacking.svg b/tests/testthat/_snaps/position-stack/area-stacking.svg index 7792c90d03..a8a8207726 100644 --- a/tests/testthat/_snaps/position-stack/area-stacking.svg +++ b/tests/testthat/_snaps/position-stack/area-stacking.svg @@ -27,10 +27,10 @@ - - - - + + + + @@ -51,9 +51,9 @@ category - + - + A B Area stacking diff --git a/tests/testthat/_snaps/scales-breaks-labels/functional-limits.svg b/tests/testthat/_snaps/scales-breaks-labels/functional-limits.svg index 0e82d87623..e0c0a6ff98 100644 --- a/tests/testthat/_snaps/scales-breaks-labels/functional-limits.svg +++ b/tests/testthat/_snaps/scales-breaks-labels/functional-limits.svg @@ -27,18 +27,18 @@ - - - - - - - - - - - - + + + + + + + + + + + + @@ -71,11 +71,11 @@ drv - + - + - + 4 f r diff --git a/tests/testthat/_snaps/stat-sum/summary-with-crossbars-manual-grouping.svg b/tests/testthat/_snaps/stat-sum/summary-with-crossbars-manual-grouping.svg index 02ab3d0f35..ef35058862 100644 --- a/tests/testthat/_snaps/stat-sum/summary-with-crossbars-manual-grouping.svg +++ b/tests/testthat/_snaps/stat-sum/summary-with-crossbars-manual-grouping.svg @@ -59,12 +59,12 @@ - - - - - - + + + + + + diff --git a/tests/testthat/_snaps/stat-sum/summary-with-crossbars-no-grouping.svg b/tests/testthat/_snaps/stat-sum/summary-with-crossbars-no-grouping.svg index dc3bc16932..ba5fd95b1b 100644 --- a/tests/testthat/_snaps/stat-sum/summary-with-crossbars-no-grouping.svg +++ b/tests/testthat/_snaps/stat-sum/summary-with-crossbars-no-grouping.svg @@ -59,12 +59,12 @@ - - - - - - + + + + + +