在函数内部执行此命令时,我无法将点图保存为pdf。
正常调用时工作正常:
df <- data.frame(a = runif(10), b = runif(10), c = runif(10), x = 1:10)
pdf("test.pdf")
dotplot(a + b + c ~ x, data = df, type = "l", auto.key=TRUE)
dev.off()
但是如果这个代码在函数内部,那么它将无法工作,只会生成一个空的或空白的文件:
plotFunc <- function(model)
{
pdf("test.pdf")
dotplot(a + b + c ~ x, data = model, type = "l", auto.key=TRUE)
dev.off()
}
plotFunc(df)
但是,在没有文件命令的情况下调用该函数将成功打印到图形窗口:
plotWinFunc <- function(model)
{
dotplot(a + b + c ~ x, data = model, type = "l", auto.key=TRUE)
}
plotWinFunc(df)
这使我相信dotplot()在输出到文件时会出现问题。并且文件的类型无关紧要,我尝试过使用bmp和pdf,两种方法都不起作用。
如何成功将dotplot写入文件?我是否必须使用晶格包中的特殊命令,或者我在某处出错?
感谢您的帮助。
答案 0 :(得分:8)
刚才意识到我必须在print()中包装dotplot:
plotFunc <- function(model)
{
pdf("test.pdf")
print(dotplot(a + b + c ~ x, data = model, type = "l", auto.key=TRUE))
dev.off()
}
plotFunc(df)
这似乎解决了它。