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

时间:2011-04-11 17:57: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)  

有没有人遇到过类似的问题?如果是这样,我需要做些什么来解决它? 非常感谢你的时间。

4 个答案:

答案 0 :(得分: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()

这样可行,同样如下:

ggplot(dat, aes(x = A, y = B)) + geom_point()
ggsave("ggplot1.pdf")

但不要混淆两者。

答案 1 :(得分: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()

编辑:我在dev.off()的右半边,显然print()不是必需的。加文的回答更多。

答案 2 :(得分:1)

以下情节

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

在控制台中工作,但不在函数中或从文件中获取此函数。

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()  

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

print(p) 

在一个函数中。

在控制台中。 “p”会自动打印,但不会出现在函数中或源文件中。

答案 3 :(得分:-1)

如果您想要将其称为“ggplot1”以外的其他内容或您选择的任何简洁对象名称,也可以在ggsave中更改pdf图的文件名。首先给出文件名,然后告诉它你所指的是哪个图,例如:

a <- ggplot(dat, aes(x = A, y = B)) + geom_point()
ggsave("Structure.pdf",plot=a)