Less smoothed line in ggplot2, alternatives to geo

2019-06-17 06:13发布

Using the following data:

> str(attribute)
'data.frame':   431 obs. of  2 variables:
 $ pos: int  1 2 3 4 5 6 7 8 9 10 ...
 $ att: num  0.652 0.733 0.815 1.079 0.885 ...   *[between 0 and 3]

and:

ggplot(attribute, aes(x=pos, y=att)) + geom_line() + geom_smooth()

I did: enter image description here

I would like to progressively smooth the black curve, not "as much as" geom_smooth default did. I've tried n, level options, but didn't do what I want. Which would be the best way to increase smoothing progressively? (e.g. average 2 values in one, then try 3 in one, and so on). I guess it's something really easy or achievable without using geom_smooth, but I don't know what to search/look for. Thanks.

1条回答
甜甜的少女心
2楼-- · 2019-06-17 06:30

This is documented in stat_smooth. The default smoother is loess, and additional arguments are passed on to it, as specified for the description of the ... argument. So what you want is span:

ggplot(mtcars,aes(x = wt,y = mpg)) + 
  geom_point() + 
  geom_smooth(span = 0.4)

Additionally, loess accepts a degree argument for more control over the amount of smoothing.

查看更多
登录 后发表回答