You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The help file for geom_rangeframe indicates that if na.rm = FALSE then NAs will be removed with a warning, and if na.rm = TRUE then NAs will be removed silently.
However, it seems that when NAs are present, there is no warning and the range lines are not drawn at all.
I think it is because x and y are specified as optional_aes in GeomRangeFrame, but the default Geom$handle_na only checks the required_aes and non_missing_aes.
I have a fix that I could submit as a pull request if this can be replicated.
Example below adapted from geom_point ...
library("dplyr")
library("ggplot2")
library("ggthemes")
library("magrittr")
set.seed(1)
mtcars2 <- mtcars %>%
mutate(mpg = ifelse(runif(32) < 0.2, NA, mpg))
# generates a warning from geom_point
# but not from geom_rangeframe
# and range line for mpg not drawn
mtcars2 %>%
ggplot(aes(wt, mpg)) +
geom_point() +
coord_cartesian(clip = "off") +
geom_rangeframe()
# suppresses the warning from geom_point
# range line for mpg still not drawn
mtcars2 %>%
ggplot(aes(wt, mpg)) +
geom_point(na.rm = TRUE) +
coord_cartesian(clip = "off") +
geom_rangeframe(na.rm = TRUE)
# explicitly removing all NAs "works"
# both range lines are drawn
mtcars2 %>%
filter(complete.cases(.)) %>%
ggplot(aes(wt, mpg)) +
geom_point() +
coord_cartesian(clip = "off") +
geom_rangeframe()
My sessionInfo() ...
R version 4.3.0 (2023-04-21 ucrt)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19045)
Matrix products: default
locale:
[1] LC_COLLATE=English_United Kingdom.utf8 LC_CTYPE=English_United Kingdom.utf8 LC_MONETARY=English_United Kingdom.utf8
[4] LC_NUMERIC=C LC_TIME=English_United Kingdom.utf8
time zone: Europe/London
tzcode source: internal
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] magrittr_2.0.3 ggthemes_5.1.0 ggplot2_3.5.1 dplyr_1.1.4
loaded via a namespace (and not attached):
[1] vctrs_0.6.5 cli_3.6.2 rlang_1.1.3 stringi_1.8.4 purrr_1.0.2 generics_0.1.3 glue_1.7.0
[8] labeling_0.4.3 colorspace_2.1-0 scales_1.3.0 fansi_1.0.6 grid_4.3.0 munsell_0.5.1 tibble_3.2.1
[15] lifecycle_1.0.4 stringr_1.5.1 compiler_4.3.0 pkgconfig_2.0.3 rstudioapi_0.16.0 farver_2.1.1 R6_2.5.1
[22] tidyselect_1.2.1 utf8_1.2.4 pillar_1.9.0 tools_4.3.0 withr_3.0.0 gtable_0.3.5
The text was updated successfully, but these errors were encountered:
The help file for
geom_rangeframe
indicates that ifna.rm = FALSE
then NAs will be removed with a warning, and ifna.rm = TRUE
then NAs will be removed silently.However, it seems that when NAs are present, there is no warning and the range lines are not drawn at all.
I think it is because
x
andy
are specified asoptional_aes
inGeomRangeFrame
, but the defaultGeom$handle_na
only checks therequired_aes
andnon_missing_aes
.I have a fix that I could submit as a pull request if this can be replicated.
Example below adapted from
geom_point
...My
sessionInfo()
...The text was updated successfully, but these errors were encountered: