r – 在函数中保存ggplot

我试图使用图形设备在函数中保存ggplot。但我发现代码生成空图。下面是一个非常简单的例子。

library(ggplot2)
ff <- function(){
  jpeg("a.jpg")
  qplot(1:20, 1:20)
  dev.off()
}
ff()

如果我只运行功能的内容,一切都很好。我知道使用ggsave()将做我想要的东西,但我只是想知道为什么jpeg()加dev.off()不工作。我试着用不同版本的R,这个问题仍然存在。

你应该使用ggsave而不是jpeg(); print(p); dev.off()序列。 ggsave是一个包装器,它完全符合你打算用你的函数,除了它提供更多的选择和多功能性。您可以明确指定输出的类型,例如jpg或pdf,或者它会从您的文件扩展名猜。。

所以你的代码可能会变成:

p <- qplot(1:20, 1:20)
ggsave(filename="a.jpg", plot=p)

有关更多详细信息,请参阅?ggsave

代码中的原始行为不起作用的原因的确是一个常见问题(stackoverlflowR FAQs on CRAN)。您需要插入打印语句以打印绘图。在交互式控制台中,打印在后台静默执行。

http://stackoverflow.com/questions/7034647/save-ggplot-within-a-function

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:r – 在函数中保存ggplot