mgcv
1.8-6 부터 시작 plot.gam
하여 플롯을 생성하는 데 사용하는 데이터를 보이지 않게 반환합니다.
pd <- plot(<some gam() model>)
의 플로팅 데이터가 포함 된 목록을 제공합니다 pd
.
mgcv
<= 1.8-5 이하의 답변 :
나는 플롯 함수가 플롯 mgcv
하는 것을 반환하지 않는다는 사실을 반복해서 저주했습니다. 다음은 추악하지만 작동합니다.
library(mgcv)
set.seed(0)
dat <- gamSim(1, n = 400, dist = "normal", scale = 2)
b <- gam(y ~ s(x0) + s(x1) + s(x2) + s(x3), data = dat)
plotData <- list()
trace(mgcv:::plot.gam, at = list(c(27, 1)),
## tested for mgcv_1.8-4. other versions may need different at-argument.
quote({
message("ooh, so dirty -- assigning into globalenv()'s plotData...")
plotData <<- pd
}))
mgcv::plot.gam(b, seWithMean = TRUE, pages = 1)
par(mfrow = c(2, 2))
for (i in 1:4) {
plot(plotData[[i]]$x, plotData[[i]]$fit, type = "l", xlim = plotData[[i]]$xlim,
ylim = range(plotData[[i]]$fit + plotData[[i]]$se, plotData[[i]]$fit -
plotData[[i]]$se))
matlines(plotData[[i]]$x, cbind(plotData[[i]]$fit + plotData[[i]]$se,
plotData[[i]]$fit - plotData[[i]]$se), lty = 2, col = 1)
rug(plotData[[i]]$raw)
}
gam
모델에 익숙하지 않지만 해당 객체의 다른 속성을 조사 했습니까? 을 사용하여 객체의 이름을 볼 수 있습니다names(b)
. 나는 당신이 추구하는 세부 사항이 어딘가에 그 객체 안에 유지 될 것이라고 추측합니다.