1

inを実行JAGSしたところ、巨大なリストが返されました (この例では results という名前が付けられています)。runjagsR

にアクセスすると、デフォルトのクォーツ デバイスresults$densityに 2 つlattice plots(パラメータごとに 1 つ) ポップアップが表示されます。

par(mfrow=c(2, 1))これらを、または同様のアプローチと組み合わせて、に送信する必要がありpdf deviceます。

私が試したものは何も機能していません。何か案は?

dev.printpdf()withなどを試しましたがdev.off()、うまくいきませんでした。

4

3 に答える 3

2

Trellis 構造を操作して「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()

c.trellis() 結果のポット http://img142.imageshack.us/img142/3272/ctrellisa.png

于 2009-11-10T09:41:50.783 に答える
1

プロットを組み合わせる最も簡単な方法は、results$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"))
于 2009-10-30T08:55:47.707 に答える
1

たとえば、含まれている の例ではrun.jags、次を使用してリストの構造を確認します。

sink("results_str.txt")
str(results$density)
sink()

次に、 layoutという名前のコンポーネントが表示されます。各変数の 2 つのプロットのレイアウトは、次を使用して設定できます。

results$density$m$layout <- c(1,2)
print(results$density$m)

パッケージのc.trellisメソッドを使用して、さまざまなパラメーターのプロットを組み合わせることができます。latticeExtra

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

c.trellis の出力 http://img88.imageshack.us/img88/6481/ctrellis.png

もう 1 つのアプローチは、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()

グリッド出力 http://img88.imageshack.us/img88/5967/grida.png

于 2009-10-29T08:11:46.167 に答える