我遇到了一个奇怪的问题。我能够使用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)
有没有人遇到过类似的问题?如果是这样,我需要做些什么来解决它? 非常感谢你的时间。
答案 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)