我想知道是否可以为我的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)
例如,第一个方面的跨度是.5,第二个方面的跨度是.8吗?
答案 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)