Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for AGG device (custom system fonts) #589

Open
olivroy opened this issue Oct 5, 2023 · 0 comments
Open

Support for AGG device (custom system fonts) #589

olivroy opened this issue Oct 5, 2023 · 0 comments

Comments

@olivroy
Copy link

olivroy commented Oct 5, 2023

Expected behavior

I would expect ggpubr to respect the graphic device set in RStudio like ggplot2 does, specifically the AGG device.

Special Handling in the case of RStudio. RSTUDIO_GD

https://github.com/tidyverse/ggplot2/blob/main/R/utilities-checks.R

Actual behavior

I get warning when I use a non-default font. (It can be silenced when setting "ggpubr.null_device", but it sometimes doesn't work)

Steps to reproduce the problem

withr::local_language("en")
library(ggplot2)
grDevices::dev.cur()
#> png 
#>   2
library(ggpubr)
# tidyverse/ggplot2#5350

p1 <- mtcars |> ggplot(aes(disp, mpg)) +
  geom_point() +
  theme(
    text = element_text(family = "Gotham")
  )
p1
#> Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
#> font family not found in Windows font database

ggarrange(p1)
#> Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): font family
#> 'Gotham' not found in PostScript font database

options(
  "ggpubr.null_device" = ragg::agg_png
)
ggarrange(p1)
#> Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
#> font family not found in Windows font database

Created on 2023-10-05 with reprex v2.0.2

Session info
sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value
#>  version  R version 4.3.1 (2023-06-16 ucrt)
#>  os       Windows 10 x64 (build 19044)
#>  system   x86_64, mingw32
#>  ui       RTerm
#>  language en
#>  tz       America/Toronto
#>  date     2023-10-05
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package     * version date (UTC) lib source
#>  abind         1.4-5   2016-07-21 [1] CRAN (R 4.3.0)
#>  backports     1.4.1   2021-12-13 [1] CRAN (R 4.3.0)
#>  broom         1.0.5   2023-06-09 [1] CRAN (R 4.3.1)
#>  car           3.1-2   2023-03-30 [1] CRAN (R 4.3.1)
#>  carData       3.0-5   2022-01-06 [1] CRAN (R 4.3.1)
#>  cli           3.6.1   2023-03-23 [1] CRAN (R 4.3.0)
#>  colorspace    2.1-0   2023-01-23 [1] CRAN (R 4.3.0)
#>  cowplot       1.1.1   2020-12-30 [1] CRAN (R 4.3.1)
#>  curl          5.0.2   2023-08-14 [1] CRAN (R 4.3.1)
#>  digest        0.6.33  2023-07-07 [1] CRAN (R 4.3.1)
#>  dplyr         1.1.3   2023-09-03 [1] CRAN (R 4.3.1)
#>  evaluate      0.22    2023-09-29 [1] CRAN (R 4.3.1)
#>  fansi         1.0.4   2023-01-22 [1] CRAN (R 4.3.0)
#>  farver        2.1.1   2022-07-06 [1] CRAN (R 4.3.0)
#>  fastmap       1.1.1   2023-02-24 [1] CRAN (R 4.3.0)
#>  fs            1.6.3   2023-07-20 [1] CRAN (R 4.3.1)
#>  generics      0.1.3   2022-07-05 [1] CRAN (R 4.3.0)
#>  ggplot2     * 3.4.3   2023-08-14 [1] CRAN (R 4.3.1)
#>  ggpubr      * 0.6.0   2023-02-10 [1] CRAN (R 4.3.1)
#>  ggsignif      0.6.4   2022-10-13 [1] CRAN (R 4.3.1)
#>  glue          1.6.2   2022-02-24 [1] CRAN (R 4.3.0)
#>  gtable        0.3.4   2023-08-21 [1] CRAN (R 4.3.1)
#>  htmltools     0.5.6   2023-08-10 [1] CRAN (R 4.3.1)
#>  knitr         1.44    2023-09-11 [1] CRAN (R 4.3.1)
#>  labeling      0.4.3   2023-08-29 [1] CRAN (R 4.3.1)
#>  lifecycle     1.0.3   2022-10-07 [1] CRAN (R 4.3.0)
#>  magrittr      2.0.3   2022-03-30 [1] CRAN (R 4.3.0)
#>  munsell       0.5.0   2018-06-12 [1] CRAN (R 4.3.0)
#>  pillar        1.9.0   2023-03-22 [1] CRAN (R 4.3.0)
#>  pkgconfig     2.0.3   2019-09-22 [1] CRAN (R 4.3.0)
#>  purrr         1.0.2   2023-08-10 [1] CRAN (R 4.3.1)
#>  R.cache       0.16.0  2022-07-21 [1] CRAN (R 4.3.1)
#>  R.methodsS3   1.8.2   2022-06-13 [1] CRAN (R 4.3.0)
#>  R.oo          1.25.0  2022-06-12 [1] CRAN (R 4.3.0)
#>  R.utils       2.12.2  2022-11-11 [1] CRAN (R 4.3.1)
#>  R6            2.5.1   2021-08-19 [1] CRAN (R 4.3.0)
#>  ragg          1.2.5   2023-01-12 [1] CRAN (R 4.3.0)
#>  reprex        2.0.2   2022-08-17 [1] CRAN (R 4.3.0)
#>  rlang         1.1.1   2023-04-28 [1] CRAN (R 4.3.0)
#>  rmarkdown     2.25    2023-09-18 [1] CRAN (R 4.3.1)
#>  rstatix       0.7.2   2023-02-01 [1] CRAN (R 4.3.1)
#>  rstudioapi    0.15.0  2023-07-07 [1] CRAN (R 4.3.1)
#>  scales        1.2.1   2022-08-20 [1] CRAN (R 4.3.0)
#>  sessioninfo   1.2.2   2021-12-06 [1] CRAN (R 4.3.0)
#>  styler        1.10.2  2023-08-29 [1] CRAN (R 4.3.1)
#>  systemfonts   1.0.4   2022-02-11 [1] CRAN (R 4.3.0)
#>  textshaping   0.3.6   2021-10-13 [1] CRAN (R 4.3.0)
#>  tibble        3.2.1   2023-03-20 [1] CRAN (R 4.3.0)
#>  tidyr         1.3.0   2023-01-24 [1] CRAN (R 4.3.0)
#>  tidyselect    1.2.0   2022-10-10 [1] CRAN (R 4.3.0)
#>  utf8          1.2.3   2023-01-31 [1] CRAN (R 4.3.0)
#>  vctrs         0.6.3   2023-06-14 [1] CRAN (R 4.3.1)
#>  withr         2.5.1   2023-09-26 [1] CRAN (R 4.3.1)
#>  xfun          0.40    2023-08-09 [1] CRAN (R 4.3.1)
#>  xml2          1.3.5   2023-07-06 [1] CRAN (R 4.3.1)
#>  yaml          2.3.7   2023-01-23 [1] CRAN (R 4.3.0)
#> 
#> 
#> ──────────────────────────────────────────────────────────────────────────────

Note that warnings in the first and third plots only show up in non-interactive sessions, but I left them in case they are helpful.

Setting the option is great, but ggpubr could detect the device better like what was done in tidyverse/ggplot2#5350

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant