我正在绘制一些数据并具有以下代码:
ggplot(aes(x = x, y = y), data = data) +
geom_point(alpha = 1/15, color = 'blue')+
scale_y_continuous('y')+
scale_x_continuous('x')+
geom_smooth(stat = 'smooth', color = 'Red')
Run Code Online (Sandbox Code Playgroud)
该图如下所示:
但是,如果我在geom_smooth函数中指定'gam' ,例如:
geom_smooth(stat = 'smooth', color = 'Red', method = 'gam')
Run Code Online (Sandbox Code Playgroud)
我得到了不同的结果:
为什么会这样?
Flo*_*ian 10
在文档中,您可以看到:
使用的平滑方法(功能),例如."lm","glm","gam","loess","rlm".
对于method ="auto",基于最大组的大小(跨所有面板)选择平滑方法.黄土用于少于1,000次观测; 否则gam与公式= y~s(x,bs ="cs")一起使用.有点传闻,黄土给出了更好的外观,但在内存中是O(n ^ 2),因此不适用于较大的数据集.
请注意,当方法'auto'使用gam时,它也会更改公式.默认公式是
公式= y~x
所以在第一个场景中,它使用方法gam,修改后的函数函数y~s(x,bs ="cs").第二次,你只指定应该使用方法'gam',但你不会覆盖公式,所以仍然使用y~x.你可以这样做:
geom_smooth(stat = 'smooth', color = 'Red', method = 'gam', formula = y ~ s(x, bs = "cs"))
Run Code Online (Sandbox Code Playgroud)
得到相同的结果.希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
5727 次 |
| 最近记录: |