From 5c0776b2898a95b397acea679826db99da687c99 Mon Sep 17 00:00:00 2001 From: Teun van den Brand Date: Wed, 19 Jun 2024 09:19:37 +0200 Subject: [PATCH 1/2] discrete scale is also empty when limits is a function --- R/scale-discrete-.R | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/R/scale-discrete-.R b/R/scale-discrete-.R index b957b97b97..499921c1c8 100644 --- a/R/scale-discrete-.R +++ b/R/scale-discrete-.R @@ -130,7 +130,9 @@ ScaleDiscretePosition <- ggproto("ScaleDiscretePosition", ScaleDiscrete, }, is_empty = function(self) { - is.null(self$range$range) && is.null(self$limits) && is.null(self$range_c$range) + is.null(self$range$range) && + (is.null(self$limits) || is.function(self$limits)) && + is.null(self$range_c$range) }, reset = function(self) { From 82dcac5f603b63148804385f74c2d084eddb22e4 Mon Sep 17 00:00:00 2001 From: Teun van den Brand Date: Wed, 19 Jun 2024 09:24:22 +0200 Subject: [PATCH 2/2] add news bullet --- NEWS.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/NEWS.md b/NEWS.md index 67c07b0b05..587b9d5e7e 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,7 @@ # ggplot2 (development version) +* Fixed bug where empty discrete scales weren't recognised as such + (@teunbrand, #5945). * `geom_rug()` prints a warning when `na.rm = FALSE`, as per documentation (@pn317, #5905) * `position_dodge(preserve = "single")` now handles multi-row geoms better, such as `geom_violin()` (@teunbrand based on @clauswilke's work, #2801).