为多面ggplot上的每个geom_smooth()设置唯一的span参数

时间:2016-08-12 19:57:16

标签: r ggplot2

我想知道是否可以为我的ggplot对象的每个方面设置不同的span参数。我有四组相关的行业数据,我想在一个ggplot对象上进行比较。我想修改每个geom_smooth()行的范围,以便更准确地建模我的数据。

library(ggplot2)
library(reshape2)

a=rnorm(50,0,1)
b=rnorm(50,0,3)

ind=1:100

df=data.frame(ind,sort(a),sort(b))
df1=melt(df, id='ind')

t=ggplot(df1, aes(x=ind,y=value, color=variable))+
geom_smooth(color='black', span=.5)+
geom_point(color='black')+
facet_wrap(~variable,ncol=2)

example plot

例如,第一个方面的跨度是.5,第二个方面的跨度是.8吗?

1 个答案:

答案 0 :(得分:1)

您可以过滤数据,仅将过滤后的子集提供给每个geom_smooth

ggplot(df1, mapping = aes(x=ind, y=value, color=variable)) + 
geom_point(color='black') +
geom_smooth(data = df1 %>% filter(variable=='sort.a'), span=0.5, method='loess') +
geom_smooth(data = df1 %>% filter(variable=='sort.b'), span=0.3, method='loess') +
facet_wrap(~variable,ncol=2)