Skip to content

Commit 8856671

Browse files
authored
Move seed setup to setup_params() from the constructor (#4413)
1 parent 15ce4a9 commit 8856671

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
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+
* Make sure position_jitter creates the same jittering independent of whether it
4+
is called by name or with constructor (@thomasp85, #2507)
5+
36
* Fix a bug in `position_dodge2()` where `NA` values in thee data would cause an
47
error (@thomasp85, #2905)
58

R/position-jitter.r

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,6 @@
4646
#' geom_point(position = jitter) +
4747
#' geom_point(position = jitter, color = "red", aes(am + 0.2, vs + 0.2))
4848
position_jitter <- function(width = NULL, height = NULL, seed = NA) {
49-
if (!is.null(seed) && is.na(seed)) {
50-
seed <- sample.int(.Machine$integer.max, 1L)
51-
}
52-
5349
ggproto(NULL, PositionJitter,
5450
width = width,
5551
height = height,
@@ -62,13 +58,19 @@ position_jitter <- function(width = NULL, height = NULL, seed = NA) {
6258
#' @usage NULL
6359
#' @export
6460
PositionJitter <- ggproto("PositionJitter", Position,
61+
seed = NA,
6562
required_aes = c("x", "y"),
6663

6764
setup_params = function(self, data) {
65+
if (!is.null(self$seed) && is.na(self$seed)) {
66+
seed <- sample.int(.Machine$integer.max, 1L)
67+
} else {
68+
seed <- self$seed
69+
}
6870
list(
6971
width = self$width %||% (resolution(data$x, zero = FALSE) * 0.4),
7072
height = self$height %||% (resolution(data$y, zero = FALSE) * 0.4),
71-
seed = self$seed
73+
seed = seed
7274
)
7375
},
7476

0 commit comments

Comments
 (0)