격자 문제 : Jags에서 나오는 격자 물체이지만 장치를 설정할 수 없습니다.

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

  •  08-07-2019
  •  | 
  •  

문제

나는 달렸다 JAGS ~와 함께 runjags 안에 R 그리고 거대한 목록을 다시 얻었습니다 (이 예제의 이름).

내가 접근 할 때마다 results$density, 둘 lattice plots (각 매개 변수 당 하나)는 기본 쿼츠 장치에서 팝업됩니다.

이것들을 결합해야합니다 par(mfrow=c(2, 1)) 또는 비슷한 접근 방식으로 pdf device.

내가 시도한 것은 작동하지 않습니다. 어떤 아이디어?

난 노력 했어 dev.print, pdf() ~와 함께 dev.off(), 운이없는 등.

도움이 되었습니까?

해결책

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

다른 팁

플롯을 결합하는 가장 쉬운 방법은 결과에 저장된 결과를 사용하는 것입니다. $ 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.png

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top