From 30f2726db8c0bee52105336f5da093b31adf18dc Mon Sep 17 00:00:00 2001 From: DavisVaughan Date: Wed, 10 May 2023 08:30:06 -0400 Subject: [PATCH 1/3] Only call `zero_range()` and `as.numeric()` in transformed space In case the `limits` in data space don't support conversion to numeric --- R/scale-.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/scale-.R b/R/scale-.R index d644bc036b..7018b67883 100644 --- a/R/scale-.R +++ b/R/scale-.R @@ -663,7 +663,7 @@ ScaleContinuous <- ggproto("ScaleContinuous", Scale, cli::cli_abort("Invalid {.arg breaks} specification. Use {.val NULL}, not {.val NA}") } - if (zero_range(as.numeric(limits))) { + if (zero_range(as.numeric(self$trans$transform(limits)))) { breaks <- limits[1] } else if (is.waive(self$breaks)) { if (!is.null(self$n.breaks) && trans_support_nbreaks(self$trans)) { From 1cf04d0f4e1fec912017084d29f07be93a10f6ff Mon Sep 17 00:00:00 2001 From: DavisVaughan Date: Wed, 10 May 2023 08:33:37 -0400 Subject: [PATCH 2/3] Add comment with link to PR --- R/scale-.R | 2 ++ 1 file changed, 2 insertions(+) diff --git a/R/scale-.R b/R/scale-.R index 7018b67883..f451ddb725 100644 --- a/R/scale-.R +++ b/R/scale-.R @@ -663,6 +663,8 @@ ScaleContinuous <- ggproto("ScaleContinuous", Scale, cli::cli_abort("Invalid {.arg breaks} specification. Use {.val NULL}, not {.val NA}") } + # Compute `zero_range()` in transformed space in case `limits` in data space + # don't support conversion to numeric (#5304) if (zero_range(as.numeric(self$trans$transform(limits)))) { breaks <- limits[1] } else if (is.waive(self$breaks)) { From 3cfb20e07659736e39baabdd58382aeff00aec1a Mon Sep 17 00:00:00 2001 From: DavisVaughan Date: Wed, 10 May 2023 08:33:44 -0400 Subject: [PATCH 3/3] NEWS bullet --- NEWS.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/NEWS.md b/NEWS.md index 9e8d26f28b..63977f8b80 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,8 @@ # ggplot2 (development version) +* `ScaleContinuous$get_breaks()` now only calls `scales::zero_range()` on limits + in transformed space, rather than in data space (#5304). + * `coord_munch()` can now close polygon shapes (@teunbrand, #3271) * You can now omit either `xend` or `yend` from `geom_segment()` as only one