2015-01-02 6 views
2

나는 황토 매끄러움에 span 매개 변수를 변경하여 단일면 처리 된 플롯 (격자 스타일)을 만들고 싶습니다. 나는 for 루프를 아래처럼 사용하려고 시도했으나 어떤 플롯도 생성되지 않았다. ggsave 함수를 사용하면 플롯이 별도로 저장됩니다.facet ggplot by loose smoother

또한 이러한 작업을 수행하는 데 더 간결한 방법이 있는지 궁금합니다.

x <- rep(1:10,4) 
y <- 1.2*x + rnorm(40,0,3) 
s <- seq(0.2,0.8,0.1) 

# plot the series of plots by varying the span parameter 
for (s_i in s) { 
    qplot(x, y, geom = 'c('point','smooth'), span = s_i) 
} 

답변

3

귀하의 접근 방식은 사용자가 명시 적으로 print 플롯 경우 잘 작동합니다 (그리고 추가 '마르크 제거) 그것을 할 수있는 다른 방법에 관해서는

for (s_i in s) { 
    print(qplot(x, y, geom = c('point','smooth'), span = s_i)) 
} 

, 나는 모든 퍼팅 추천 목록에 플롯

changing_span = list() 
for (i in seq_along(s)) { 
    changing_span[[i]] <- qplot(x, y, geom = c('point','smooth'), span = s[i]) + 
     labs(title = paste("span:", s[i])) 
} 

그럼 당신은, 예를 들어, 함께 그들 모두를 플롯 할 수 있습니다

library(gridExtra) 
do.call(grid.arrange, changing_span) 
+1

각 플롯에 스팬 값이 포함 된 패싯 스트립을 추가하여 패싯을 시뮬레이션 할 수도 있습니다. 예를 들어 ('qplot' 대신에'ggplot'을 사용) : lapply (s, function (span) { ggplot (dat.span = paste0 ("Span =", span) y)) + geom_point() + geom_smooth (span = span) + facet_grid (. ~ span) } – eipi10