我有这种数据框:
df<-data.frame(x=c(1,2,3,4,5,6,7,8,9,10),y=c(2,11,24,30,45,65,90,110,126,145), a=c(0.2,0.2,0.3,0.4,0.1,0.8,0.7,0.6,0.8,0.9))
使用ggplot,我想在同一图上绘制两条回归线,根据条件(a&gt;或&lt; 0.5)计算我数据框的子集。
在视觉上,我想要两个回归线:
df_a<-subset(df, df$a<0.5)
ggplot(df_a,aes(x,y))+
geom_point(aes(color = a), size=3.5) +
geom_smooth(method="lm", size=1, color="black") +
ylim(-5,155) +
xlim(0,11)
df_b<-subset(df, df$a>0.5)
ggplot(df_b,aes(x,y)) +
geom_point(aes(color = a), size=3.5) +
geom_smooth(method="lm", size=1, color="black") +
ylim(-5,155) +
xlim(0,11)
出现在这个数字上:
ggplot(df,aes(x,y))+ geom_point(aes(color = a), size=3.5)
我试过par(new=TRUE)
但没有成功。
答案 0 :(得分:5)
制作一个标志变量,并使用group:
df$small=df$a<0.5
ggplot(df,aes(x,y,group=small))+geom_point() + stat_smooth(method="lm")
如果你愿意,可以拥有漂亮的颜色和传奇:
ggplot(df,aes(x,y,group=small,colour=small))+geom_point() + stat_smooth(method="lm")
或许你想要点彩点:
ggplot(df,aes(x,y,group=small)) +
stat_smooth(method="lm")+geom_point(aes(colour=a))