3

我想通过将跨度参数更改为更平滑的黄土来制作单面图(格子样式)。我尝试使用如下的 for 循环,但没有生成绘图。如果我要使用 ggsave 函数,这些图将单独保存。

另外,我想知道是否有更简洁的方法来完成这样的任务?

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)
}
4

1 回答 1

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)
于 2015-01-02T07:50:35.020 回答