我已经更新了我的 ggplot2 库,现在我遇到了一个问题,在调用 ggsave 后,图形设备不再显示绘图。我无法解决问题,这意味着我无法根据需要导出绘图。请帮忙。
搜索网络发现一些提到 dpi 不匹配的问题,但设置或更改 dpi 似乎没有效果。这个问题似乎是在更新 ggplot2 库后开始的。
以下代码重现了该问题:
library(ggplot2);
df <- read.table(textConnection('value,value1
1,1
2,2
3,3 '),header=TRUE,sep=',');
ggplot(df,aes(x=value,y=value1)) + geom_point();
setwd('c:/temp');
ggsave('test.png');
运行后,输出为空白,图形设备不再显示绘图。任何后续绘图都不会显示在图形设备上。
运行 dev.off() 后,新的绘图显示正常,直到再次调用 ggsave。
sessionInfo() 将 R 和库的版本报告为:
R version 3.0.0 (2013-04-03)
Platform: i386-w64-mingw32/i386 (32-bit)
locale:
[1] LC_COLLATE=English_New Zealand.1252 LC_CTYPE=English_New Zealand.1252
[3] LC_MONETARY=English_New Zealand.1252 LC_NUMERIC=C
[5] LC_TIME=English_New Zealand.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] plyr_1.8 ggplot2_0.9.3.1 RODBC_1.3-6
loaded via a namespace (and not attached):
[1] colorspace_1.2-2 dichromat_2.0-0 digest_0.6.3 grid_3.0.0 gtable_0.1.2
[6] labeling_0.1 MASS_7.3-26 munsell_0.4 proto_0.3-10 RColorBrewer_1.0-5
[11] reshape2_1.2.2 scales_0.2.3 stringr_0.6.2 tools_3.0.0
该问题也出现在 R 的 2.15.0 和 2.15.3 中。
编辑:更改了代码,因此数据将使用 sep=',' 而不是空格加载
补充:进一步的测试表明,这实际上可能是 RStudio 的一个错误,以及它在 ggsave 之后如何显示图形设备,而不是 R 本身。在 RGui 中运行上述脚本不会重现问题,仅在 RStudio V0.97.336 + V0.97.449 中。