ggplot2 ggsave函数导致图形设备不显示绘图

时间:2013-05-09 23:39:20

标签: r ggplot2

我已经更新了我的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中。

1 个答案:

答案 0 :(得分:5)

似乎是RStudio的一个问题。问题描述为herehere

解决方法是安装RStudio V0.97.311,或确保单独执行ggplot和ggsave行(即不要在带有control + enter的块中选择并一起运行)。