1

我有这种数据框:

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 > 或 < 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)没有成功。

4

1 回答 1

5

创建一个标志变量,并使用组:

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 有两次拟合

或者,也许您想为这些点着色:

ggplot(df,aes(x,y,group=small)) + 
   stat_smooth(method="lm")+geom_point(aes(colour=a))

带彩色点

于 2013-08-09T16:58:24.807 回答