格子の問題:JAGSからの格子オブジェクトですが、デバイスを設定できません

StackOverflow https://stackoverflow.com/questions/1641488

  •  08-07-2019
  •  | 
  •  

質問

R runjags を使用して JAGS を実行しましたが、巨大なリストが返されました(この例では結果に名前を付けました)。

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

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

私が試したものは何も動作していません。アイデアはありますか?

dev.print pdf() dev.off()などで試してみました。 p>

役に立ちましたか?

解決

「V1」を捨てる方法は次のとおりです。 Trellis構造の操作によるパネル:

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

他のヒント

プロットを組み合わせる最も簡単な方法は、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"))

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

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

[レイアウト]という名前のコンポーネントが表示されます。各変数の2つのプロットのレイアウトは、

を使用して設定できます
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))

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top