我想使用pdf()
将图表发送到文件,但plot.MCMCglmm()
正试图以交互方式行事,这会干扰dev.off()
。
pdf(file="model.pdf")
plot(model, random=FALSE)
Hit <Return> to see next plot: dev.off()
文件未关闭。添加另一个dev.off()
将关闭该文件。有没有办法抑制交互式绘图?
编辑示例:
require(MCMCglmm)
mod_dat <- data.frame( Name = rep(letters[1:3], each=10),
Group = rep(letters[1:3], 10),
Age = rep(letters[1:5], each=6),
Happy = rep(letters[1:2], 15),
x = rnorm(30),
y = rnorm(30) )
mod_out <- MCMCglmm( y~x, random=~Name+Group+Age+Happy,
data=mod_dat, verbose=FALSE )
pdf( file="model out.pdf" )
plot(mod_out)
dev.off()
dev.off()
答案 0 :(得分:1)
您可以修改plot.MCMCglmm
的绘图功能以关闭新的页面提示。您可以通过在控制台中键入plot.MCMCglmm
来获取该功能的代码。
myPlotGLMM = function (x, random = FALSE, ...)
{
nF <- x$Fixed$nfl
#devAskNewPage.orig <- devAskNewPage()
if (random) {
nF <- sum(rep(x$Random$nrl, x$Random$nfl)) + nF
if (nF != dim(x$Sol)[2]) {
stop("random effects not saved and cannot be plotted")
}
}
plot(x$Sol[, 1:nF, drop = FALSE], ...)
#devAskNewPage(TRUE)
if (is.null(x$Lambda) == FALSE) {
plot(x$Lambda, ...)
#devAskNewPage(TRUE)
}
plot(x$VCV, ...)
#devAskNewPage(devAskNewPage.orig)
}
myPlotGLMM(model)
答案 1 :(得分:0)
另一个选择是将所有内容绘制到一个页面上。没有可重复的例子,我无法测试这个,但这应该有效:
pdf(file="model.pdf")
par(mfrow=c(2,2))
plot(model, random=FALSE)
dev.off()
因此,如果生成了四个图,它们将以2 x2网格排列在一页上。