将dotplot保存为R中的pdf

时间:2010-02-16 23:25:27

标签: pdf r plot lattice

在函数内部执行此命令时,我无法将点图保存为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写入文件?我是否必须使用晶格包中的特殊命令,或者我在某处出错?

感谢您的帮助。

1 个答案:

答案 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)

这似乎解决了它。