首页 > 解决方案 > R ggsave 输出不同的 pdf 和 png

问题描述

我在使用 ggsave 函数保存 pdf 和 png 数字时遇到了一个奇怪的问题。显然,得到的数字看起来有些不同。请看这里:

(左png,右pdf) 在此处输入图像描述

pdf 文件的网格线以黑色绘制,而 png 文件正确地以灰色显示网格线。我附上了一个最小的例子

library('tidyverse')
set.seed(1)
df <- tibble(x = rnorm(1000))
p <- df %>% ggplot(aes(x)) +
  geom_histogram(bins = 20, fill = 'grey85', col = 'black', alpha = .4) +
  theme_linedraw()
p

ggsave( 'test.pdf', p, device = 'pdf', width = 5, height = 5)
ggsave('test.png',p, device = 'png',  width = 5, height = 5)

会话信息:

R version 3.5.1 (2018-07-02)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS  10.14.2

Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] cowplot_0.9.3   forcats_0.3.0   stringr_1.3.1   dplyr_0.7.6     purrr_0.2.5     readr_1.1.1     tidyr_0.8.1    
 [8] tibble_1.4.2    ggplot2_3.0.0   tidyverse_1.2.1

loaded via a namespace (and not attached):
 [1] Rcpp_0.12.17     cellranger_1.1.0 pillar_1.3.0     compiler_3.5.1   plyr_1.8.4       bindr_0.1.1     
 [7] tools_3.5.1      jsonlite_1.5     lubridate_1.7.4  nlme_3.1-137     gtable_0.2.0     lattice_0.20-35 
[13] pkgconfig_2.0.1  rlang_0.2.1.9000 cli_1.0.0        rstudioapi_0.7   yaml_2.1.19      haven_1.1.2     
[19] bindrcpp_0.2.2   withr_2.1.2      xml2_1.2.0       httr_1.3.1       hms_0.4.2        grid_3.5.1      
[25] tidyselect_0.2.4 glue_1.3.0       R6_2.2.2         fansi_0.2.3      readxl_1.1.0     modelr_0.1.2    
[31] magrittr_1.5     backports_1.1.2  scales_0.5.0     rvest_0.3.2      assertthat_0.2.0 colorspace_1.3-2
[37] labeling_0.3     utf8_1.1.4       stringi_1.2.4    lazyeval_0.2.1   munsell_0.5.0    broom_0.5.0     
[43] crayon_1.3.4 

标签: rggplot2

解决方案


我现在发现了这个问题。通过替换theme_linedraw()theme_bw()PDF 和 PNG 数字是相同的。


推荐阅读