使用ggplot2在R中保存pdf文件的问题

wes*_*erA 11 macos r ggplot2

我遇到了一个奇怪的问题.我能够使用R/ggplot2创建和保存pdf文件,并在R Console运行时查看它们.一旦我退出R控制台,Mac OS X上的预览将不再显示PDF.我已经能够保存.png文件没有问题,但由于我无法控制的原因,我需要保存为pdf文件.我用来保存的代码如下:

  pdfFile <-c("/Users/adam/mock/dir/structure.pdf")
  pdf(pdfFile)
  ggplot(y=count,data=allCombined, aes(x=sequenceName, fill=factor(subClass))) + geom_bar()
  ggsave(pdfFile)  
Run Code Online (Sandbox Code Playgroud)

有谁遇到过类似的问题?如果是这样,我需要做些什么来解决它?非常感谢您的宝贵时间.

Rei*_*son 31

问题是您没有关闭pdf()设备dev.off()

dat <- data.frame(A = 1:10, B = runif(10))
require(ggplot2)

pdf("ggplot1.pdf")
ggplot(dat, aes(x = A, y = B)) + geom_point()
dev.off()
Run Code Online (Sandbox Code Playgroud)

这样做有效,如:

ggplot(dat, aes(x = A, y = B)) + geom_point()
ggsave("ggplot1.pdf")
Run Code Online (Sandbox Code Playgroud)

但不要混淆两者.


Dir*_*tel 5

在R常见问题解答中,您需要print()随叫随到ggplot()- 而且您还需要关闭绘图设备dev.off(),即尝试

pdfFile <-c("/Users/adam/mock/dir/structure.pdf")
pdf(pdfFile)
ggplot(y=count,data=allCombined,aes(x=sequenceName,fill=factor(subClass)))
      + geom_bar()
dev.off()
Run Code Online (Sandbox Code Playgroud)

编辑:我是半正确的dev.off(),显然print()是不需要的.加文的答案更多.

  • @wespiserA我想要包含一个LMGTFY链接但是SO不允许我这样做,所以实际链接就足够了;-) http://cran.r-project.org/doc/FAQ/R-FAQ.html (2认同)

小智 5

以下情节

pdf("test.pdf")  
p <- qplot(hp, mpg, data=mtcars, color=am,   
         xlab="Horsepower", ylab="Miles per Gallon", geom="point")   
p  
dev.off()
Run Code Online (Sandbox Code Playgroud)

在控制台中有效,但在函数中或当您从文件中获取它时则无效。

myfunc <- function() {  
  p <- qplot(hp, mpg, data=mtcars, color=am,   
           xlab="Horsepower", ylab="Miles per Gallon", geom="point")  
  p 
}  
pdf("test.pdf")  
myfunc()  
dev.off()  
Run Code Online (Sandbox Code Playgroud)

将生成损坏的 pdf 文件以及我们使用的修复方法

print(p) 
Run Code Online (Sandbox Code Playgroud)

在一个函数内。

在控制台中。“p”会自动打印,但不会在函数中或在您获取文件时打印。