这个问题在这里已经有一个答案:

当在函数内完成此命令时,我在将点PLOT保存到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包装在print():

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

这似乎已经解决了。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top