Skip to content

Commit a1b7054

Browse files
authored
Check if transformed limits are valid before assigning them (#4676)
1 parent 199eb90 commit a1b7054

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

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+
* Binning scales are now more resilient to calculated limits that ends up being
4+
`NaN` after transformations (@thomasp85, #4510)
5+
36
* Strip padding in `facet_grid()` is now only in effect if `strip.placement = "outside"`
47
_and_ an axis is present between the strip and the panel (@thomasp85, #4610)
58

R/scale-.r

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1083,11 +1083,12 @@ ScaleBinned <- ggproto("ScaleBinned", Scale,
10831083
new_limits[1] <- breaks[1]
10841084
breaks <- breaks[-1]
10851085
}
1086-
limits <- new_limits
10871086
} else {
10881087
bin_size <- max(breaks[1] - limits[1], limits[2] - breaks[1])
1089-
limits <- c(breaks[1] - bin_size, breaks[1] + bin_size)
1088+
new_limits <- c(breaks[1] - bin_size, breaks[1] + bin_size)
10901089
}
1090+
new_limits_trans <- suppressWarnings(self$trans$transform(new_limits))
1091+
limits[is.finite(new_limits_trans)] <- new_limits[is.finite(new_limits_trans)]
10911092
self$limits <- self$trans$transform(limits)
10921093
}
10931094
} else if (is.function(self$breaks)) {

0 commit comments

Comments
 (0)