在R中绘制一个平滑的图形

时间:2018-03-11 16:30:40

标签: r ggplot2 smoothing

在R中我想绘制一个平滑的图形(带有阴影边距),其中包含X轴和Y轴上的“年龄”和“周长”变量,用于准备好的橙色数据

ggplot2使用的平滑“方法”是什么?

我喜欢这个,但得到错误:

x <- Orange[2]
y <- Orange[3]
lo <- loess(y~x)
plot(x,y)
lines(predict(lo), col='red', lwd=2)
  

错误,警告:model.frame.default(formula = y~x)中的错误:   变量'y'的无效类型(列表)调用:loess - &gt; eval - &gt; eval - &gt;     - &GT; model.frame.default执行暂停

2 个答案:

答案 0 :(得分:3)

来自?geom_smooth: &#34;对于[默认],基于最大组的大小(跨所有面板)选择平滑方法。 'loess()'用于少于1,000次观测;否则'mgcv :: gam()'用于&#34;

所以对于Orange来说,无论如何你都会得到黄土,但你可以通过设置方法来明确。

ggplot(Orange,aes(x=age,y=circumference))+geom_point()+geom_smooth(method="loess")

答案 1 :(得分:1)

您可以使用geom_smooth()。示例如下。

library(ggplot2)
ggplot(diamonds,aes(x=carat,y=price)) + 
  geom_point(aes(color=cut))+
  geom_smooth()