مشاكل شعرية: التحف شعرية قادمة من النتوءات، ولكن لا يمكن تعيين جهاز
سؤال
وركضت JAGS
مع runjags
في R
وحصلت قائمة العملاقة الظهر (النتائج التي سميت باسم هذا المثال).
ومتى يمكنني الوصول إلى 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()
عاء من c.trellis () يؤدي http://img142.imageshack.us /img142/3272/ctrellisa.png
نصائح أخرى
وأسهل طريقة للجمع بين المؤامرات هي استخدام النتائج المخزنة في نتائج $ 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()
وبعد ذلك سترى المكونات المسمى <م> تخطيط م>. يمكن تعيين تخطيط لمدة المؤامرات من كل متغير باستخدام
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
وثمة نهج آخر هو استخدام منافذ العرض 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 بابوا نيو غينيا