将dotplot保存为R中的pdf

Jar*_*red 3 pdf plot r 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()
Run Code Online (Sandbox Code Playgroud)

但是,如果此代码在函数内部,它将无法工作,只会生成一个空的或空白的文件:

plotFunc <- function(model)  
{  
    pdf("test.pdf")  
    dotplot(a + b + c ~ x, data = model, type = "l", auto.key=TRUE)  
    dev.off()  
}
plotFunc(df)
Run Code Online (Sandbox Code Playgroud)

但是,在没有文件命令的情况下调用该函数将成功打印到图形窗口:

plotWinFunc <- function(model)  
{  
    dotplot(a + b + c ~ x, data = model, type = "l", auto.key=TRUE)  
}  
plotWinFunc(df)
Run Code Online (Sandbox Code Playgroud)

这让我相信dotplot()在输出到文件时会出现问题.并且文件的类型无关紧要,我已尝试使用bmp和pdf,两种方法都不起作用.

如何成功将dotplot写入文件?我是否必须使用晶格包中的特殊命令或在某处出错?

谢谢你的帮助.

Jar*_*red 9

刚刚意识到我必须在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)
Run Code Online (Sandbox Code Playgroud)

这似乎解决了它.