ggplot2 png文件没有背景

Posted

技术标签:

【中文标题】ggplot2 png文件没有背景【英文标题】:ggplot2 png file without background 【发布时间】:2021-12-23 23:09:37 【问题描述】:

几个月以来,ggplot2 开始保存透明背景的 png 文件。 Rstudio 中的代码输出以及保存为 pdf 时看起来很棒。当我省略灰色面板背景时,它主要发生在主题的使用上。我在我的 macbook 上用“预览”和在 Windows 电脑上用“照片查看器”进行了测试。

library(ggplot2)
library(dplyr)

mtcars %>% 
  ggplot(aes(x = mpg, y = cyl)) +
  geom_point() + 
  theme_minimal()

这是文件的外观(白色背景):

ggsave("test.png", dpi = 300)
#> Saving 7 x 5 in image
ggsave("test.pdf")
#> Saving 5.54 x 4.56 in image

devtools::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value                       
#>  version  R version 4.1.1 (2021-08-10)
#>  os       macOS Big Sur 10.16         
#>  system   x86_64, darwin17.0          
#>  ui       X11                         
#>  language (EN)                        
#>  collate  de_CH.UTF-8                 
#>  ctype    de_CH.UTF-8                 
#>  tz       Europe/Zurich               
#>  date     2021-11-11                  
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package     * version date       lib source        
#>  assertthat    0.2.1   2019-03-21 [1] CRAN (R 4.1.0)
#>  backports     1.2.1   2020-12-09 [1] CRAN (R 4.1.0)
#>  cachem        1.0.6   2021-08-19 [1] CRAN (R 4.1.0)
#>  callr         3.7.0   2021-04-20 [1] CRAN (R 4.1.0)
#>  cli           3.0.1   2021-07-17 [1] CRAN (R 4.1.0)
#>  colorspace    2.0-2   2021-06-24 [1] CRAN (R 4.1.0)
#>  crayon        1.4.1   2021-02-08 [1] CRAN (R 4.1.0)
#>  DBI           1.1.1   2021-01-15 [1] CRAN (R 4.1.0)
#>  desc          1.3.0   2021-03-05 [1] CRAN (R 4.1.0)
#>  devtools      2.4.2   2021-06-07 [1] CRAN (R 4.1.0)
#>  digest        0.6.27  2020-10-24 [1] CRAN (R 4.1.0)
#>  dplyr       * 1.0.7   2021-06-18 [1] CRAN (R 4.1.0)
#>  ellipsis      0.3.2   2021-04-29 [1] CRAN (R 4.1.0)
#>  evaluate      0.14    2019-05-28 [1] CRAN (R 4.1.0)
#>  fansi         0.5.0   2021-05-25 [1] CRAN (R 4.1.0)
#>  farver        2.1.0   2021-02-28 [1] CRAN (R 4.1.0)
#>  fastmap       1.1.0   2021-01-25 [1] CRAN (R 4.1.0)
#>  fs            1.5.0   2020-07-31 [1] CRAN (R 4.1.0)
#>  generics      0.1.0   2020-10-31 [1] CRAN (R 4.1.0)
#>  ggplot2     * 3.3.5   2021-06-25 [1] CRAN (R 4.1.0)
#>  glue          1.4.2   2020-08-27 [1] CRAN (R 4.1.0)
#>  gtable        0.3.0   2019-03-25 [1] CRAN (R 4.1.0)
#>  highr         0.9     2021-04-16 [1] CRAN (R 4.1.0)
#>  htmltools     0.5.2   2021-08-25 [1] CRAN (R 4.1.0)
#>  knitr         1.34    2021-09-09 [1] CRAN (R 4.1.0)
#>  labeling      0.4.2   2020-10-20 [1] CRAN (R 4.1.0)
#>  lifecycle     1.0.0   2021-02-15 [1] CRAN (R 4.1.0)
#>  magrittr      2.0.1   2020-11-17 [1] CRAN (R 4.1.0)
#>  memoise       2.0.0   2021-01-26 [1] CRAN (R 4.1.0)
#>  munsell       0.5.0   2018-06-12 [1] CRAN (R 4.1.0)
#>  pillar        1.6.2   2021-07-29 [1] CRAN (R 4.1.0)
#>  pkgbuild      1.2.0   2020-12-15 [1] CRAN (R 4.1.0)
#>  pkgconfig     2.0.3   2019-09-22 [1] CRAN (R 4.1.0)
#>  pkgload       1.2.2   2021-09-11 [1] CRAN (R 4.1.0)
#>  prettyunits   1.1.1   2020-01-24 [1] CRAN (R 4.1.0)
#>  processx      3.5.2   2021-04-30 [1] CRAN (R 4.1.0)
#>  ps            1.6.0   2021-02-28 [1] CRAN (R 4.1.0)
#>  purrr         0.3.4   2020-04-17 [1] CRAN (R 4.1.0)
#>  R6            2.5.1   2021-08-19 [1] CRAN (R 4.1.0)
#>  ragg          1.1.3   2021-06-09 [1] CRAN (R 4.1.0)
#>  remotes       2.4.0   2021-06-02 [1] CRAN (R 4.1.0)
#>  reprex        2.0.1   2021-08-05 [1] CRAN (R 4.1.0)
#>  rlang         0.4.11  2021-04-30 [1] CRAN (R 4.1.0)
#>  rmarkdown     2.11    2021-09-14 [1] CRAN (R 4.1.0)
#>  rprojroot     2.0.2   2020-11-15 [1] CRAN (R 4.1.0)
#>  rstudioapi    0.13    2020-11-12 [1] CRAN (R 4.1.0)
#>  scales        1.1.1   2020-05-11 [1] CRAN (R 4.1.0)
#>  sessioninfo   1.1.1   2018-11-05 [1] CRAN (R 4.1.0)
#>  stringi       1.7.4   2021-08-25 [1] CRAN (R 4.1.0)
#>  stringr       1.4.0   2019-02-10 [1] CRAN (R 4.1.0)
#>  styler        1.6.1   2021-09-17 [1] CRAN (R 4.1.0)
#>  systemfonts   1.0.2   2021-05-11 [1] CRAN (R 4.1.0)
#>  testthat      3.0.4   2021-07-01 [1] CRAN (R 4.1.0)
#>  textshaping   0.3.5   2021-06-09 [1] CRAN (R 4.1.0)
#>  tibble        3.1.4   2021-08-25 [1] CRAN (R 4.1.0)
#>  tidyselect    1.1.1   2021-04-30 [1] CRAN (R 4.1.0)
#>  usethis       2.0.1   2021-02-10 [1] CRAN (R 4.1.0)
#>  utf8          1.2.2   2021-07-24 [1] CRAN (R 4.1.0)
#>  vctrs         0.3.8   2021-04-29 [1] CRAN (R 4.1.0)
#>  withr         2.4.2   2021-04-18 [1] CRAN (R 4.1.0)
#>  xfun          0.26    2021-09-14 [1] CRAN (R 4.1.0)
#>  yaml          2.2.1   2020-02-01 [1] CRAN (R 4.1.0)
#> 
#> [1] /Library/Frameworks/R.framework/Versions/4.1/Resources/library

由reprex package (v2.0.1) 于 2021 年 11 月 11 日创建

这是文件并排的外观:

我已经在首选项/常规/图形下的“后端”选项卡中测试了所有图形设备,并且我还在 R(不是 R Studio)中测试了所有图形设备,结果相同。

【问题讨论】:

只是为了澄清 - 你想要还是不想要透明背景? 第三,如果你想要白色背景,你试过加ggsave(..., bg = "white")吗? 谢谢,我编辑了问题来回答您的前 2 个问题。您使用ggsave(..., bg = "white") 的解决方案确实解决了问题。我使用 ggplot2 已经很多年了。这是我的新行为还是错误? 这当然不是你的错误。添加上述内容将参数传递给png 设备,该设备接受此参数并控制背景。 【参考方案1】:

也许确实值得后人回答......

指定ggsave("test.png", dpi = 300, bg = "white")

背景(双关语):参数将通过... 参数传递给grDevices::pngbg 控制设备的背景。

【讨论】:

以上是关于ggplot2 png文件没有背景的主要内容,如果未能解决你的问题,请参考以下文章

R/ggplot2:添加带有透明度信息的 png

R 绘图 ggplot png 所支持的最大图片背景与res的关系

ggplot2 没有坐标轴、图例等的绘图

在ggplot2中指定颜色,轴线和背景的删除

R可视化包ggplot2设置透明背景实战

R可视化包ggplot2更改背景色实战