Problèmes de réseau: objets de réseau provenant de JAGS, mais le périphérique ne peut pas être défini

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

  •  08-07-2019
  •  | 
  •  

Question

J'ai exécuté JAGS avec runjags dans R et j'ai reçu une liste géante (les résultats nommés pour cet exemple).

Chaque fois que j'accède à results $ density , deux tracés en treillis (un pour chaque paramètre) apparaissent dans le périphérique quartz par défaut.

Je dois les combiner avec par (mfrow = c (2, 1)) ou avec une approche similaire et les envoyer au périphérique pdf .

Rien de ce que j'ai essayé ne fonctionne. Des idées?

J'ai essayé dev.print , pdf () avec dev.off () , etc. sans succès.

Était-ce utile?

La solution

Voici un moyen d’abandonner le " V1 " panneaux par manipulation de la structure en treillis:

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 de c.trellis () résultat http://img142.imageshack.us /img142/3272/ctrellisa.png

Autres conseils

Le moyen le plus simple de combiner les tracés consiste à utiliser les résultats stockés dans les résultats $ 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"))

Par exemple, pour l'exemple inclus de run.jags , vérifiez la structure de la liste à l'aide de

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

Ensuite, vous verrez les composants nommés layout . La disposition des deux graphiques de chaque variable peut être définie à l'aide de

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

Les tracés de différents paramètres peuvent être combinés à l'aide de la méthode c.trellis du package 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))

sortie de c.trellis http://img88.imageshack.us/img88/ 6481 / ctrellis.png

Une autre approche consiste à utiliser les fenêtres 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()

sortie de la grille http://img88.imageshack.us/img88/5967/grida .png

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top