span参数不适用于黄土适合ggplot2吗?

时间:2016-12-20 11:18:04

标签: r ggplot2 loess facet-grid

我想要更改示例图中的span参数Example Plot

在我为了得到这个图而编写的代码中,我无法获得除默认值0.2之外的任何其他内容。我有一种预感,它与将黄土适合分配给每个组有关,但我尝试过的却没有用。我已经做了一些示例代码来演示不影响下面黄土拟合的span参数。

xy <- rbind(data.frame(x=sort(rnorm(n=46, mean=5, sd=2)), y=1:46),data.frame(x=sort(rnorm(n=46, mean=7, sd=3)), y=1:46), data.frame(x=sort(rnorm(n=46, mean=4, sd=7)), y=1:46))


plot.data <- data.frame(group=letters[rep(1:3, each=46)], xy)

ggplot(plot.data, aes(x=x, y=y))+geom_smooth(method=loess, span=0.1, se=T,  col='black') + geom_point(alpha=0.7) + facet_wrap(~group)

2 个答案:

答案 0 :(得分:1)

Span与geom_smooth(...)方法调用“loess”相关,

超过1000个数据点的任何数据都默认为method =“gam”,因为这对大型数据集更有效。

`geom_smooth()` using method = 'gam'

尝试明确说明method = loess,然后设置span。

geom_smooth(method = loess, span = 0.3)

注意:这会以指数方式增加图表渲染时间。

答案 1 :(得分:0)

在我看来,这可能与ggplot2关系不大,而与您的数据关系更多。观察:

plot.data.a <- plot.data[plot.data$group == 'a', ]
par(mfrow = c(2,2))
for(i in seq(.1, .9, length.out = 4)){
    plot(plot.data.a[,-1], main = paste('Span of', round(i, 2)))
    lines(loess(y ~ x, data = plot.data.a, span = i))
}

enter image description here

似乎改变跨度对loess拟合的视觉影响很小甚至没有。

所以,当你制作你的情节并改变span时,似乎ggplot2了解你正在改变span,这只是因为拟合相对不变。 / p>