使用ggplot2在R中保存pdf文件时出现问题
我遇到了一个奇怪的问题。我可以使用 R/ggplot2 创建和保存 pdf 文件,并在 R 控制台运行时查看它们。一旦我退出 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)
有没有人遇到过类似的问题?如果是这样,我需要做什么来修复它? 非常感谢您抽出时间。
I am encountering an odd problem. I am able to create and save pdf file using R/ggplot2 and view them while the R Console is running. As soon as I exit the R console, Preview on Mac OS X will no longer display the PDF. I have been able to save .png files w/o problem, but for reasons beyond my control, I need to save in pdf files. The code I am using to save is as follows:
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)
Has anyone encountered a similar problem? If so, what do I need to do to fix it?
Thank you very much for your time.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
问题是您没有使用
dev.off()
关闭pdf()
设备,这可以工作,如下所示:
但不要混合两者。
The problem is that you don't close the
pdf()
device withdev.off()
That works, as does:
But don't mix the two.
在 R FAQ 中,您需要在调用
ggplot()
时使用print()
——并且需要使用dev 关闭绘图设备。 off()
以及,即尝试编辑:我对
dev.off()
的看法是对的,显然是print()< /code> 不是必需的。加文的回答还有更多。
It is in the R FAQ, you need a
print()
around your call toggplot()
-- and you need to close the plotting device withdev.off()
as well, ie tryEdit: I was half-right on the
dev.off()
, apparently theprint()
isn;t needed. Gavin's answer has more.下面的图
在控制台中有效,但在函数中或当您从文件中获取它时则无效。
使用的修复它的方法
将产生一个损坏的 pdf 文件以及我们在函数中
。在控制台中。 “p”会自动打印,但不会在函数中或在您获取文件时打印。
The following plot
works in the console but not in a function or when you source this from a file.
Will produce a corrupt pdf file and the way to fix it us use
within a function.
In a console. "p" is automatically printed but not in a function or when you source the file.
如果您想将其命名为“ggplot1”或您选择的任何简洁对象名称之外的名称,您还可以在 ggsave 中更改 pdf 图的文件名;只需先给出文件名,然后告诉它您所指的是哪个图,例如:
You can also change the filename of your pdf plot within ggsave if you want to call it something other than "ggplot1" or whatever concise object name you chose; just give the filename first and then tell it which plot you're referring to, for example: