Lattice Probleme: Gitterobjekte aus Richtung JAGS, aber Gerät kann nicht eingestellt werden

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

  •  08-07-2019
  •  | 
  •  

Frage

Ich lief JAGS mit runjags in R und ich bekam eine riesige Liste zurück (mit dem Namen Ergebnisse für dieses Beispiel).

Wenn ich results$density zugreifen, zwei lattice plots (einen für jeden Parameter) Pop in dem Standard-Quarz-Gerät auf.

Ich brauche diese mit par(mfrow=c(2, 1)) oder mit einem ähnlichen Ansatz zu kombinieren, und sie an den pdf device senden.

Im Moment habe ich versucht, funktioniert. Irgendwelche Ideen?

Ich habe versucht, dev.print, pdf() mit dev.off() etc. ohne Glück.

War es hilfreich?

Lösung

Hier ist ein Weg, um die „V1“ Platten durch Manipulation der Trellis-Struktur zu Graben:

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

Topf c.trellis () führen http://img142.imageshack.us /img142/3272/ctrellisa.png

Andere Tipps

Der einfachste Weg, um die Grundstücke zu kombinieren, ist es, die Ergebnisse in den Ergebnissen $ mcmc gespeichert zu verwenden:

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

Zum Beispiel für das mitgelieferte Beispiel von run.jags, überprüfen Sie die Struktur der Liste mit

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

Dann werden Sie Komponenten sehen Namen Layout . Das Layout für die beiden Parzellen jeder Variablen können mit Hilfe eingestellt werden

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

Die Grundstücke für verschiedene Parameter kombiniert werden können, die c.trellis Methode aus dem latticeExtra Paket.

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

Ausgabe von c.trellis http://img88.imageshack.us/img88/ 6481 / ctrellis.png

Ein weiterer Ansatz ist grid Ansichtsfenster zu verwenden:

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

Gitter Ausgang http://img88.imageshack.us/img88/5967/grida .png

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top