diff --git a/NEWS.md b/NEWS.md index 3030a4e4..a584425c 100755 --- a/NEWS.md +++ b/NEWS.md @@ -2,6 +2,9 @@ * The aliases `p_value()` and `conf_int()`, first deprecated 6 years ago, now return an error (#530). + +* Addresses ggplot2 warnings when shading p-values for test statistics + that are outside of the range of the generated distribution (#528). # infer v1.0.6 diff --git a/R/shade_p_value.R b/R/shade_p_value.R index 3a8fdf55..96850d8f 100644 --- a/R/shade_p_value.R +++ b/R/shade_p_value.R @@ -180,6 +180,8 @@ shade_p_value_term <- function(plot, obs_stat, direction, segment_args <- c_dedupl( # Not overwritable arguments list( + # Address length-1 aesthetics warning by providing geom-specific data (#528) + data = data.frame(obs_stat = obs_stat), # Here `aes()` is needed to force {ggplot2} to include segment in the plot mapping = aes(x = obs_stat, xend = obs_stat, y = 0, yend = Inf), color = color, @@ -346,6 +348,12 @@ hist_area <- function(data, obs_stat, direction, yval) { right = c(obs_stat, x_extra[x_extra > obs_stat]) ) + # if area will have area 0, return 0-length tibble to trigger + # `ggplot:::empty()` edge case (#528) + if (length(x_grid) == 1) { + return(tibble::tibble(x = numeric(0), y = numeric(0), dir = character(0))) + } + tibble::tibble(x = x_grid, y = curve_fun(x_grid), dir = direction) } diff --git a/tests/testthat/_snaps/shade_p_value/pval-both-both.svg b/tests/testthat/_snaps/shade_p_value/pval-both-both.svg index 6ebafedb..d958d8ea 100644 --- a/tests/testthat/_snaps/shade_p_value/pval-both-both.svg +++ b/tests/testthat/_snaps/shade_p_value/pval-both-both.svg @@ -48,105 +48,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/testthat/_snaps/shade_p_value/pval-both-left.svg b/tests/testthat/_snaps/shade_p_value/pval-both-left.svg index 8430f3dd..a493cb80 100644 --- a/tests/testthat/_snaps/shade_p_value/pval-both-left.svg +++ b/tests/testthat/_snaps/shade_p_value/pval-both-left.svg @@ -46,105 +46,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/testthat/_snaps/shade_p_value/pval-both-null.svg b/tests/testthat/_snaps/shade_p_value/pval-both-null.svg index 0fb08314..7d9bde00 100644 --- a/tests/testthat/_snaps/shade_p_value/pval-both-null.svg +++ b/tests/testthat/_snaps/shade_p_value/pval-both-null.svg @@ -44,105 +44,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/testthat/_snaps/shade_p_value/pval-both-right.svg b/tests/testthat/_snaps/shade_p_value/pval-both-right.svg index c20569a3..b2b31a3e 100644 --- a/tests/testthat/_snaps/shade_p_value/pval-both-right.svg +++ b/tests/testthat/_snaps/shade_p_value/pval-both-right.svg @@ -46,105 +46,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/testthat/_snaps/shade_p_value/pval-direction-both.svg b/tests/testthat/_snaps/shade_p_value/pval-direction-both.svg index a39ee02e..17eceec2 100644 --- a/tests/testthat/_snaps/shade_p_value/pval-direction-both.svg +++ b/tests/testthat/_snaps/shade_p_value/pval-direction-both.svg @@ -47,105 +47,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/testthat/_snaps/shade_p_value/pval-direction-left.svg b/tests/testthat/_snaps/shade_p_value/pval-direction-left.svg index e4fc3f0a..cea3f652 100644 --- a/tests/testthat/_snaps/shade_p_value/pval-direction-left.svg +++ b/tests/testthat/_snaps/shade_p_value/pval-direction-left.svg @@ -45,105 +45,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/testthat/_snaps/shade_p_value/pval-direction-right.svg b/tests/testthat/_snaps/shade_p_value/pval-direction-right.svg index 5217d7b8..a05f63ac 100644 --- a/tests/testthat/_snaps/shade_p_value/pval-direction-right.svg +++ b/tests/testthat/_snaps/shade_p_value/pval-direction-right.svg @@ -45,105 +45,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/testthat/_snaps/shade_p_value/pval-extra-aes-1.svg b/tests/testthat/_snaps/shade_p_value/pval-extra-aes-1.svg index 1eef0605..e242a722 100644 --- a/tests/testthat/_snaps/shade_p_value/pval-extra-aes-1.svg +++ b/tests/testthat/_snaps/shade_p_value/pval-extra-aes-1.svg @@ -47,105 +47,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/testthat/_snaps/shade_p_value/pval-extra-aes-2.svg b/tests/testthat/_snaps/shade_p_value/pval-extra-aes-2.svg index b541c52e..d1c035e5 100644 --- a/tests/testthat/_snaps/shade_p_value/pval-extra-aes-2.svg +++ b/tests/testthat/_snaps/shade_p_value/pval-extra-aes-2.svg @@ -47,105 +47,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/testthat/_snaps/shade_p_value/pval-extra-aes-3.svg b/tests/testthat/_snaps/shade_p_value/pval-extra-aes-3.svg index 141c8027..06094ce3 100644 --- a/tests/testthat/_snaps/shade_p_value/pval-extra-aes-3.svg +++ b/tests/testthat/_snaps/shade_p_value/pval-extra-aes-3.svg @@ -47,105 +47,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/testthat/_snaps/shade_p_value/pval-sim-both.svg b/tests/testthat/_snaps/shade_p_value/pval-sim-both.svg index a39ee02e..17eceec2 100644 --- a/tests/testthat/_snaps/shade_p_value/pval-sim-both.svg +++ b/tests/testthat/_snaps/shade_p_value/pval-sim-both.svg @@ -47,105 +47,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/testthat/_snaps/shade_p_value/pval-sim-left.svg b/tests/testthat/_snaps/shade_p_value/pval-sim-left.svg index e4fc3f0a..cea3f652 100644 --- a/tests/testthat/_snaps/shade_p_value/pval-sim-left.svg +++ b/tests/testthat/_snaps/shade_p_value/pval-sim-left.svg @@ -45,105 +45,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/testthat/_snaps/shade_p_value/pval-sim-null.svg b/tests/testthat/_snaps/shade_p_value/pval-sim-null.svg index 9c938e44..405f4304 100644 --- a/tests/testthat/_snaps/shade_p_value/pval-sim-null.svg +++ b/tests/testthat/_snaps/shade_p_value/pval-sim-null.svg @@ -43,105 +43,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/testthat/_snaps/shade_p_value/pval-sim-right.svg b/tests/testthat/_snaps/shade_p_value/pval-sim-right.svg index 5217d7b8..a05f63ac 100644 --- a/tests/testthat/_snaps/shade_p_value/pval-sim-right.svg +++ b/tests/testthat/_snaps/shade_p_value/pval-sim-right.svg @@ -45,105 +45,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/testthat/_snaps/shade_p_value/pval-stat-match.svg b/tests/testthat/_snaps/shade_p_value/pval-stat-match.svg index ac212799..9b10ced3 100644 --- a/tests/testthat/_snaps/shade_p_value/pval-stat-match.svg +++ b/tests/testthat/_snaps/shade_p_value/pval-stat-match.svg @@ -47,1005 +47,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/testthat/_snaps/shade_p_value/pval-theor-both.svg b/tests/testthat/_snaps/shade_p_value/pval-theor-both.svg index ee92face..a807041c 100644 --- a/tests/testthat/_snaps/shade_p_value/pval-theor-both.svg +++ b/tests/testthat/_snaps/shade_p_value/pval-theor-both.svg @@ -33,105 +33,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/testthat/_snaps/shade_p_value/pval-theor-left.svg b/tests/testthat/_snaps/shade_p_value/pval-theor-left.svg index 53d6df08..ea52feec 100644 --- a/tests/testthat/_snaps/shade_p_value/pval-theor-left.svg +++ b/tests/testthat/_snaps/shade_p_value/pval-theor-left.svg @@ -31,105 +31,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/testthat/_snaps/shade_p_value/pval-theor-null.svg b/tests/testthat/_snaps/shade_p_value/pval-theor-null.svg index 76aaceda..04055c8d 100644 --- a/tests/testthat/_snaps/shade_p_value/pval-theor-null.svg +++ b/tests/testthat/_snaps/shade_p_value/pval-theor-null.svg @@ -29,105 +29,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/testthat/_snaps/shade_p_value/pval-theor-right.svg b/tests/testthat/_snaps/shade_p_value/pval-theor-right.svg index e8593d00..00ff0e2c 100644 --- a/tests/testthat/_snaps/shade_p_value/pval-theor-right.svg +++ b/tests/testthat/_snaps/shade_p_value/pval-theor-right.svg @@ -31,105 +31,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/testthat/_snaps/shade_p_value/zero-area-shade.svg b/tests/testthat/_snaps/shade_p_value/zero-area-shade.svg new file mode 100644 index 00000000..2016248f --- /dev/null +++ b/tests/testthat/_snaps/shade_p_value/zero-area-shade.svg @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 +5 +10 +15 + + + + + + + + + +0 +25 +50 +75 +100 +stat +count +Simulation-Based Null Distribution + + diff --git a/tests/testthat/_snaps/visualize/df-obs-stat-1.svg b/tests/testthat/_snaps/visualize/df-obs-stat-1.svg index b38233b8..a90b7853 100644 --- a/tests/testthat/_snaps/visualize/df-obs-stat-1.svg +++ b/tests/testthat/_snaps/visualize/df-obs-stat-1.svg @@ -27,122 +27,23 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + @@ -155,14 +56,14 @@ - - - - -10 -20 -30 -40 + + + + +10 +20 +30 +40 stat count Simulation-Based Null Distribution diff --git a/tests/testthat/_snaps/visualize/vis-sim-both-1.svg b/tests/testthat/_snaps/visualize/vis-sim-both-1.svg index 23840140..8a203fc3 100644 --- a/tests/testthat/_snaps/visualize/vis-sim-both-1.svg +++ b/tests/testthat/_snaps/visualize/vis-sim-both-1.svg @@ -27,122 +27,23 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + @@ -156,15 +57,15 @@ - - - - + + + + -1.00 --0.75 --0.50 --0.25 -0.00 +-0.75 +-0.50 +-0.25 +0.00 stat count Simulation-Based Null Distribution diff --git a/tests/testthat/_snaps/visualize/vis-sim-both-2.svg b/tests/testthat/_snaps/visualize/vis-sim-both-2.svg index 3094d308..2165a187 100644 --- a/tests/testthat/_snaps/visualize/vis-sim-both-2.svg +++ b/tests/testthat/_snaps/visualize/vis-sim-both-2.svg @@ -27,32 +27,23 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + @@ -67,15 +58,15 @@ - - - - + + + + --2 --1 -0 -1 +-2 +-1 +0 +1 2 stat count diff --git a/tests/testthat/_snaps/visualize/vis-sim-left-1.svg b/tests/testthat/_snaps/visualize/vis-sim-left-1.svg index b8d59087..bd5c3a35 100644 --- a/tests/testthat/_snaps/visualize/vis-sim-left-1.svg +++ b/tests/testthat/_snaps/visualize/vis-sim-left-1.svg @@ -45,105 +45,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/testthat/_snaps/visualize/vis-sim-right-1.svg b/tests/testthat/_snaps/visualize/vis-sim-right-1.svg index 509bbbbb..92e0f9e6 100644 --- a/tests/testthat/_snaps/visualize/vis-sim-right-1.svg +++ b/tests/testthat/_snaps/visualize/vis-sim-right-1.svg @@ -45,105 +45,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/testthat/_snaps/visualize/vis-theor-both-1.svg b/tests/testthat/_snaps/visualize/vis-theor-both-1.svg index 35f2f57d..5597ec42 100644 --- a/tests/testthat/_snaps/visualize/vis-theor-both-1.svg +++ b/tests/testthat/_snaps/visualize/vis-theor-both-1.svg @@ -33,105 +33,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/testthat/_snaps/visualize/viz-fit-p-val-both.svg b/tests/testthat/_snaps/visualize/viz-fit-p-val-both.svg index 7afe46ae..e1ec5772 100644 --- a/tests/testthat/_snaps/visualize/viz-fit-p-val-both.svg +++ b/tests/testthat/_snaps/visualize/viz-fit-p-val-both.svg @@ -84,25 +84,6 @@ - - - - - - - - - - - - - - - - - - - 0 @@ -147,57 +128,38 @@ - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -211,16 +173,16 @@ - - - - - --3 --2 --1 -0 -1 + + + + + +-3 +-2 +-1 +0 +1 collegedegree count @@ -278,25 +240,6 @@ - - - - - - - - - - - - - - - - - - - 0 diff --git a/tests/testthat/_snaps/visualize/viz-fit-p-val-left.svg b/tests/testthat/_snaps/visualize/viz-fit-p-val-left.svg index e0927b37..ccb82c90 100644 --- a/tests/testthat/_snaps/visualize/viz-fit-p-val-left.svg +++ b/tests/testthat/_snaps/visualize/viz-fit-p-val-left.svg @@ -82,25 +82,6 @@ - - - - - - - - - - - - - - - - - - - 0 @@ -178,25 +159,6 @@ - - - - - - - - - - - - - - - - - - - 0 @@ -274,25 +236,6 @@ - - - - - - - - - - - - - - - - - - - 0 diff --git a/tests/testthat/_snaps/visualize/viz-fit-p-val-right.svg b/tests/testthat/_snaps/visualize/viz-fit-p-val-right.svg index 3986b661..ab5f6475 100644 --- a/tests/testthat/_snaps/visualize/viz-fit-p-val-right.svg +++ b/tests/testthat/_snaps/visualize/viz-fit-p-val-right.svg @@ -82,25 +82,6 @@ - - - - - - - - - - - - - - - - - - - 0 @@ -176,25 +157,6 @@ - - - - - - - - - - - - - - - - - - - 0 @@ -272,25 +234,6 @@ - - - - - - - - - - - - - - - - - - - 0 diff --git a/tests/testthat/test-shade_p_value.R b/tests/testthat/test-shade_p_value.R index 7e728f7f..32645a34 100644 --- a/tests/testthat/test-shade_p_value.R +++ b/tests/testthat/test-shade_p_value.R @@ -141,6 +141,16 @@ test_that("shade_p_value throws errors", { }) +test_that("`shade_p_value()` handles 0-area shading without issue (#528)", { + expect_no_condition( + zero_area_shade <- visualize(gss_permute) + shade_p_value(100, "right") + ) + + expect_doppelganger( + "zero_area_shade", + expect_no_condition(print(zero_area_shade)), + ) +}) # norm_direction ---------------------------------------------------------- test_that("norm_direction works", {