-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Closed
Labels
Description
layer_data()
provides useful information for people with and without visual impairments to better understand current ggplot object in a table form.
However, this data does not contain x/y labels so it is challenging to associate each x/y values with their corresponding labels.
For example, in the following bar plot, the x labels ("2seater", "compact", "midsize", "minivan", "pickup", "subcompact", "suv") are not contained in layer_data()
data frame.
Of course, it is possible to retrieve them by defining a custom function just like what {BrailleR} does like below; however, being able to see all the labels along with their corresponding values in one data frame would not only be more desirable, but also be more stable and consistent.
Reprex
library(ggplot2)
g <- ggplot(mpg, aes(class)) + geom_bar()
g
layer_data(g)
#> y count prop x flipped_aes PANEL group ymin ymax xmin xmax colour fill
#> 1 5 5 1 1 FALSE 1 1 0 5 0.55 1.45 NA grey35
#> 2 47 47 1 2 FALSE 1 2 0 47 1.55 2.45 NA grey35
#> 3 41 41 1 3 FALSE 1 3 0 41 2.55 3.45 NA grey35
#> 4 11 11 1 4 FALSE 1 4 0 11 3.55 4.45 NA grey35
#> 5 33 33 1 5 FALSE 1 5 0 33 4.55 5.45 NA grey35
#> 6 35 35 1 6 FALSE 1 6 0 35 5.55 6.45 NA grey35
#> 7 62 62 1 7 FALSE 1 7 0 62 6.55 7.45 NA grey35
#> size linetype alpha
#> 1 0.5 1 NA
#> 2 0.5 1 NA
#> 3 0.5 1 NA
#> 4 0.5 1 NA
#> 5 0.5 1 NA
#> 6 0.5 1 NA
#> 7 0.5 1 NA
# Use custom function
.getGGXTicks <- function(x, xbuild, layer) {
# The location of this item is changing in an upcoming ggplot version
if ("panel_ranges" %in% names(xbuild$layout)) {
return(xbuild$layout$panel_ranges[[layer]]$x.labels) # ggplot 2.2.1
} else {
xlabs <- xbuild$layout$panel_params[[1]]$x$get_labels()
return(xlabs[!is.na(xlabs)])
}
}
.getGGXTicks(g, ggplot_build(g), 1)
#> [1] "2seater" "compact" "midsize" "minivan" "pickup"
#> [6] "subcompact" "suv"
Created on 2022-10-02 with reprex v2.0.2
Session info
sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#> setting value
#> version R version 4.2.1 (2022-06-23 ucrt)
#> os Windows 10 x64 (build 22621)
#> system x86_64, mingw32
#> ui RTerm
#> language (EN)
#> collate English_United States.utf8
#> ctype English_United States.utf8
#> tz America/Chicago
#> date 2022-10-02
#> pandoc 2.19.2 @ C:/PROGRA~3/CHOCOL~1/bin/ (via rmarkdown)
#>
#> ─ Packages ───────────────────────────────────────────────────────────────────
#> package * version date (UTC) lib source
#> assertthat 0.2.1 2019-03-21 [1] CRAN (R 4.2.0)
#> cli 3.4.1 2022-09-23 [1] CRAN (R 4.2.1)
#> colorspace 2.0-3 2022-02-21 [1] CRAN (R 4.2.0)
#> curl 4.3.2 2021-06-23 [1] CRAN (R 4.2.0)
#> DBI 1.1.3 2022-06-18 [1] CRAN (R 4.2.0)
#> digest 0.6.29 2021-12-01 [1] CRAN (R 4.2.0)
#> dplyr 1.0.10 2022-09-01 [1] CRAN (R 4.2.1)
#> evaluate 0.16 2022-08-09 [1] CRAN (R 4.2.1)
#> fansi 1.0.3 2022-03-24 [1] CRAN (R 4.2.0)
#> farver 2.1.1 2022-07-06 [1] CRAN (R 4.2.1)
#> fastmap 1.1.0 2021-01-25 [1] CRAN (R 4.2.0)
#> fs 1.5.2 2021-12-08 [1] CRAN (R 4.2.0)
#> generics 0.1.3 2022-07-05 [1] CRAN (R 4.2.1)
#> ggplot2 * 3.3.6 2022-05-03 [1] CRAN (R 4.2.0)
#> glue 1.6.2 2022-02-24 [1] CRAN (R 4.2.0)
#> gtable 0.3.1 2022-09-01 [1] CRAN (R 4.2.1)
#> highr 0.9 2021-04-16 [1] CRAN (R 4.2.0)
#> htmltools 0.5.3 2022-07-18 [1] CRAN (R 4.2.1)
#> httr 1.4.4 2022-08-17 [1] CRAN (R 4.2.1)
#> knitr 1.40 2022-08-24 [1] CRAN (R 4.2.1)
#> labeling 0.4.2 2020-10-20 [1] CRAN (R 4.2.0)
#> lifecycle 1.0.2 2022-09-09 [1] CRAN (R 4.2.1)
#> magrittr 2.0.3 2022-03-30 [1] CRAN (R 4.2.0)
#> mime 0.12 2021-09-28 [1] CRAN (R 4.2.0)
#> munsell 0.5.0 2018-06-12 [1] CRAN (R 4.2.0)
#> pillar 1.8.1 2022-08-19 [1] CRAN (R 4.2.1)
#> pkgconfig 2.0.3 2019-09-22 [1] CRAN (R 4.2.0)
#> purrr 0.3.4 2020-04-17 [1] CRAN (R 4.2.0)
#> R.cache 0.16.0 2022-07-21 [1] CRAN (R 4.2.1)
#> R.methodsS3 1.8.2 2022-06-13 [1] CRAN (R 4.2.0)
#> R.oo 1.25.0 2022-06-12 [1] CRAN (R 4.2.0)
#> R.utils 2.12.0 2022-06-28 [1] CRAN (R 4.2.1)
#> R6 2.5.1 2021-08-19 [1] CRAN (R 4.2.0)
#> reprex 2.0.2 2022-08-17 [1] CRAN (R 4.2.1)
#> rlang 1.0.6 2022-09-24 [1] CRAN (R 4.2.1)
#> rmarkdown 2.16 2022-08-24 [1] CRAN (R 4.2.1)
#> scales 1.2.1 2022-08-20 [1] CRAN (R 4.2.1)
#> sessioninfo 1.2.2 2021-12-06 [1] CRAN (R 4.2.0)
#> stringi 1.7.8 2022-07-11 [1] CRAN (R 4.2.1)
#> stringr 1.4.1 2022-08-20 [1] CRAN (R 4.2.1)
#> styler 1.7.0.9003 2022-10-03 [1] Github (r-lib/styler@b41f8ac)
#> tibble 3.1.8 2022-07-22 [1] CRAN (R 4.2.1)
#> tidyselect 1.1.2 2022-02-21 [1] CRAN (R 4.2.0)
#> utf8 1.2.2 2021-07-24 [1] CRAN (R 4.2.0)
#> vctrs 0.4.2 2022-09-29 [1] CRAN (R 4.2.1)
#> withr 2.5.0 2022-03-03 [1] CRAN (R 4.2.0)
#> xfun 0.33 2022-09-12 [1] CRAN (R 4.2.1)
#> xml2 1.3.3 2021-11-30 [1] CRAN (R 4.2.0)
#> yaml 2.3.5 2022-02-21 [1] CRAN (R 4.2.0)
#>
#> [1] C:/Program Files/R/R-4.2.1/library
#>
#> ──────────────────────────────────────────────────────────────────────────────