Skip to content

Commit 6c2e102

Browse files
authored
Interpreter/wrapper for gpar() (#5867)
* write wrapper * use wrapper * add news bullet * remove defunct `len0_null()`
1 parent e24cbba commit 6c2e102

26 files changed

+146
-101
lines changed

NAMESPACE

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -422,6 +422,7 @@ export(get_alt_text)
422422
export(get_element_tree)
423423
export(get_guide_data)
424424
export(gg_dep)
425+
export(ggpar)
425426
export(ggplot)
426427
export(ggplotGrob)
427428
export(ggplot_add)

NEWS.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# ggplot2 (development version)
22

3+
* New helper function `ggpar()` to translate ggplot2's interpretation of
4+
graphical parameters to {grid}'s interpretation (@teunbrand, #5866).
5+
36
# ggplot2 3.5.1
47

58
This is a small release focusing on fixing regressions from 3.5.0 and

R/annotation-logticks.R

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -175,14 +175,14 @@ GeomLogticks <- ggproto("GeomLogticks", Geom,
175175
ticks$x_b <- with(data, segmentsGrob(
176176
x0 = unit(xticks$x, "native"), x1 = unit(xticks$x, "native"),
177177
y0 = unit(xticks$start, "cm"), y1 = unit(xticks$end, "cm"),
178-
gp = gpar(col = alpha(colour, alpha), lty = linetype, lwd = linewidth * .pt)
178+
gp = ggpar(col = alpha(colour, alpha), lty = linetype, lwd = linewidth)
179179
))
180180
}
181181
if (grepl("t", sides) && nrow(xticks) > 0) {
182182
ticks$x_t <- with(data, segmentsGrob(
183183
x0 = unit(xticks$x, "native"), x1 = unit(xticks$x, "native"),
184184
y0 = unit(1, "npc") - unit(xticks$start, "cm"), y1 = unit(1, "npc") - unit(xticks$end, "cm"),
185-
gp = gpar(col = alpha(colour, alpha), lty = linetype, lwd = linewidth * .pt)
185+
gp = ggpar(col = alpha(colour, alpha), lty = linetype, lwd = linewidth)
186186
))
187187
}
188188
}
@@ -213,14 +213,14 @@ GeomLogticks <- ggproto("GeomLogticks", Geom,
213213
ticks$y_l <- with(data, segmentsGrob(
214214
y0 = unit(yticks$y, "native"), y1 = unit(yticks$y, "native"),
215215
x0 = unit(yticks$start, "cm"), x1 = unit(yticks$end, "cm"),
216-
gp = gpar(col = alpha(colour, alpha), lty = linetype, lwd = linewidth * .pt)
216+
gp = ggpar(col = alpha(colour, alpha), lty = linetype, lwd = linewidth)
217217
))
218218
}
219219
if (grepl("r", sides) && nrow(yticks) > 0) {
220220
ticks$y_r <- with(data, segmentsGrob(
221221
y0 = unit(yticks$y, "native"), y1 = unit(yticks$y, "native"),
222222
x0 = unit(1, "npc") - unit(yticks$start, "cm"), x1 = unit(1, "npc") - unit(yticks$end, "cm"),
223-
gp = gpar(col = alpha(colour, alpha), lty = linetype, lwd = linewidth * .pt)
223+
gp = ggpar(col = alpha(colour, alpha), lty = linetype, lwd = linewidth)
224224
))
225225
}
226226
}

R/annotation-map.R

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,9 @@ GeomAnnotationMap <- ggproto("GeomAnnotationMap", GeomMap,
9595

9696
polygonGrob(coords$x, coords$y, default.units = "native",
9797
id = grob_id,
98-
gp = gpar(
98+
gp = ggpar(
9999
col = data$colour, fill = alpha(data$fill, data$alpha),
100-
lwd = data$linewidth * .pt)
100+
lwd = data$linewidth)
101101
)
102102
},
103103

R/coord-radial.R

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -326,8 +326,8 @@ CoordRadial <- ggproto("CoordRadial", Coord,
326326
y = c(Inf, -Inf, -Inf, Inf)
327327
)
328328
background <- coord_munch(self, background, panel_params, is_closed = TRUE)
329-
bg_gp <- gpar(
330-
lwd = len0_null(bg_element$linewidth * .pt),
329+
bg_gp <- ggpar(
330+
lwd = bg_element$linewidth,
331331
col = bg_element$colour, fill = bg_element$fill,
332332
lty = bg_element$linetype
333333
)

R/coord-sf.R

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -326,9 +326,9 @@ CoordSf <- ggproto("CoordSf", CoordCartesian,
326326
if (inherits(el, "element_blank")) {
327327
grobs <- list(element_render(theme, "panel.background"))
328328
} else {
329-
line_gp <- gpar(
329+
line_gp <- ggpar(
330330
col = el$colour,
331-
lwd = len0_null(el$linewidth * .pt),
331+
lwd = el$linewidth,
332332
lty = el$linetype
333333
)
334334
grobs <- c(

R/geom-curve.R

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,10 @@ GeomCurve <- ggproto("GeomCurve", GeomSegment,
5757
default.units = "native",
5858
curvature = curvature, angle = angle, ncp = ncp,
5959
square = FALSE, squareShape = 1, inflect = FALSE, open = TRUE,
60-
gp = gpar(
60+
gp = ggpar(
6161
col = alpha(trans$colour, trans$alpha),
6262
fill = alpha(arrow.fill, trans$alpha),
63-
lwd = trans$linewidth * .pt,
63+
lwd = trans$linewidth,
6464
lty = trans$linetype,
6565
lineend = lineend),
6666
arrow = arrow

R/geom-dotplot.R

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -293,9 +293,9 @@ GeomDotplot <- ggproto("GeomDotplot", Geom,
293293
dotstackGrob(stackaxis = stackaxis, x = tdata$x, y = tdata$y, dotdia = dotdianpc,
294294
stackposition = tdata$stackpos, stackdir = stackdir, stackratio = stackratio,
295295
default.units = "npc",
296-
gp = gpar(col = alpha(tdata$colour, tdata$alpha),
296+
gp = ggpar(col = alpha(tdata$colour, tdata$alpha),
297297
fill = fill_alpha(tdata$fill, tdata$alpha),
298-
lwd = tdata$stroke, lty = tdata$linetype,
298+
lwd = tdata$stroke / .pt, lty = tdata$linetype,
299299
lineend = lineend))
300300
)
301301
},

R/geom-hex.R

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,10 +89,10 @@ GeomHex <- ggproto("GeomHex", Geom,
8989

9090
ggname("geom_hex", polygonGrob(
9191
coords$x, coords$y,
92-
gp = gpar(
92+
gp = ggpar(
9393
col = data$colour,
9494
fill = fill_alpha(data$fill, data$alpha),
95-
lwd = data$linewidth * .pt,
95+
lwd = data$linewidth,
9696
lty = data$linetype,
9797
lineend = lineend,
9898
linejoin = linejoin,

R/geom-label.R

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -90,17 +90,17 @@ GeomLabel <- ggproto("GeomLabel", Geom,
9090
padding = label.padding,
9191
r = label.r,
9292
angle = row$angle,
93-
text.gp = gpar(
93+
text.gp = ggpar(
9494
col = row$colour,
9595
fontsize = row$size * size.unit,
9696
fontfamily = row$family,
9797
fontface = row$fontface,
9898
lineheight = row$lineheight
9999
),
100-
rect.gp = gpar(
100+
rect.gp = ggpar(
101101
col = if (isTRUE(all.equal(label.size, 0))) NA else row$colour,
102102
fill = fill_alpha(row$fill, row$alpha),
103-
lwd = label.size * .pt
103+
lwd = label.size
104104
)
105105
)
106106
})
@@ -115,7 +115,7 @@ GeomLabel <- ggproto("GeomLabel", Geom,
115115
labelGrob <- function(label, x = unit(0.5, "npc"), y = unit(0.5, "npc"),
116116
just = "center", padding = unit(0.25, "lines"), r = unit(0.1, "snpc"),
117117
angle = NULL, default.units = "npc", name = NULL,
118-
text.gp = gpar(), rect.gp = gpar(fill = "white"), vp = NULL) {
118+
text.gp = gpar(), rect.gp = ggpar(fill = "white"), vp = NULL) {
119119

120120
if (length(label) != 1) {
121121
cli::cli_abort("{.arg label} must be of length 1.")
@@ -130,7 +130,7 @@ labelGrob <- function(label, x = unit(0.5, "npc"), y = unit(0.5, "npc"),
130130
vp <- viewport(
131131
angle = angle, x = x, y = y,
132132
width = unit(0, "cm"), height = unit(0, "cm"),
133-
gp = gpar(fontsize = text.gp$fontsize)
133+
gp = ggpar(fontsize = text.gp$fontsize)
134134
)
135135
x <- unit(rep(0.5, length(x)), "npc")
136136
y <- unit(rep(0.5, length(y)), "npc")

0 commit comments

Comments
 (0)