我跑JAGS
我得到了一个巨大的列表(这个例子的结果)。晶格问题:晶格对象来自JAGS,但设备不能设置
每当我访问results$density
,两个lattice plots
(每个参数一个)弹出默认的石英设备。
我需要结合这些与par(mfrow=c(2, 1))
或类似的方法,并将它们发送到pdf device
。
没有我试过的是工作。有任何想法吗?
我试过dev.print
,pdf()
与dev.off()
等没有运气。
我跑JAGS
我得到了一个巨大的列表(这个例子的结果)。晶格问题:晶格对象来自JAGS,但设备不能设置
每当我访问results$density
,两个lattice plots
(每个参数一个)弹出默认的石英设备。
我需要结合这些与par(mfrow=c(2, 1))
或类似的方法,并将它们发送到pdf device
。
没有我试过的是工作。有任何想法吗?
我试过dev.print
,pdf()
与dev.off()
等没有运气。
这里是由网格结构的操纵沟“V1”面板的方式:
p1 <- results$density$c
p2 <- results$density$m
p1$layout <- c(1,1)
p1$index.cond[[1]] <- 1 # remove second index
p1$condlevels[[1]] <- "c" # remove "V1"
class(p1) <- "trellis" # overwrite class "plotindpages"
p2$layout <- c(1,1)
p2$index.cond[[1]] <- 1 # remove second index
p2$condlevels[[1]] <- "m" # remove "V1"
class(p2) <- "trellis" # overwrite class "plotindpages"
library(grid)
layout <- grid.layout(2, 1, heights=unit(c(1, 1), c("null", "null")))
grid.newpage()
pushViewport(viewport(layout=layout))
pushViewport(viewport(layout.pos.row=1))
print(p1, newpage=FALSE)
popViewport()
pushViewport(viewport(layout.pos.row=2))
print(p2, newpage=FALSE)
popViewport()
popViewport()
pot of c.trellis() result http://img142.imageshack.us/img142/3272/ctrellisa.png
例如,对于从run.jags
所包含例如,使用
sink("results_str.txt")
str(results$density)
sink()
然后你会看到一个名为布局组件检查列表的结构。每个变量的两个曲线图的布局可以用
results$density$m$layout <- c(1,2)
print(results$density$m)
不同的参数的曲线可以使用从latticeExtra
包c.trellis
方法组合进行设置。
class(results$density$m) <- "trellis" # overwrite class "plotindpages"
class(results$density$c) <- "trellis" # overwrite class "plotindpages"
library("latticeExtra")
update(c(results$density$m, results$density$c), layout=c(2,2))
output of c.trellis http://img88.imageshack.us/img88/6481/ctrellis.png
另一种方法是使用grid
视:
library("grid")
results$density$m$layout <- c(2,1)
results$density$c$layout <- c(2,1)
class(results$density$m) <- "trellis"
class(results$density$c) <- "trellis"
layout <- grid.layout(2, 1, heights=unit(c(1, 1), c("null", "null")))
grid.newpage()
pushViewport(viewport(layout=layout))
pushViewport(viewport(layout.pos.row=1))
print(results$density$m, newpage=FALSE)
popViewport()
pushViewport(viewport(layout.pos.row=2))
print(results$density$c, newpage=FALSE)
popViewport()
popViewport()
的情节相结合的最简单方法是使用存储在结果$ MCMC结果:
# prepare data, see source code of "run.jags"
thinned.mcmc <- combine.mcmc(list(results$mcmc),
collapse.chains=FALSE,
return.samples=1000)
print(densityplot(thinned.mcmc[,c(1,2)], layout=c(1,2),
ylab="Density", xlab="Value"))
干净有效!谢谢。我仍然很好奇(对于一般的格子知识),如何在你的另一个例子中抛弃这些V1和V2图。 – Vince 2009-10-30 22:53:40
这工作 - 但我不希望V1和V2图 - 它们是多余的。我怎样才能摆脱这些? – Vince 2009-10-30 03:31:56