【发布时间】:2019-05-29 04:21:18
【问题描述】:
我在使用 ggsave 函数保存 pdf 和 png 数字时遇到了一个奇怪的问题。显然,得到的数字看起来有些不同。请看这里:
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
【问题讨论】:
-
不要发布像
rm(list = ls())这样的代码,除非它对您的问题非常重要。没有人愿意在尝试测试您的代码以帮助您时意外清除他们的工作区。 -
我无法复制 - 在 Windows 上使用相同的 R 和 ggplot 版本。我的 PNG 和 PDF 看起来都不错。请尝试使用不同的查看器打开 PDF,以确保它不是查看器问题。如果这不起作用,您还可以尝试加载 Cairo Device 包并使用 Cairo Device PDF 功能。
-
是的,我尝试过使用各种 PDF 阅读器(Acrobat 阅读器、预览和 Skim),结果相同。可悲的是,cairo 设备 pdf 功能也会导致同样的问题。我猜这个问题与 macOS 有关。