R 如何使用stat_smooth在双因素图形上显示一条直线?

R 如何使用stat_smooth在双因素图形上显示一条直线?,r,ggplot2,R,Ggplot2,我有这样一个data.frame: df <- data.frame(a = runif(1000), b = runif(1000), c = runif(1000), d = sample(c("yes", "no"), 1000, replace=TRUE)) 但这并不是我想要的。我想要的是这一行: ggplot(data = df , aes(x=a, y = pred)) + geom_smooth() 覆盖于此: ggplot(data = df , aes(x=a, y

我有这样一个data.frame:

df <- data.frame(a = runif(1000), b = runif(1000), c = runif(1000),  d = sample(c("yes", "no"), 1000, replace=TRUE))
但这并不是我想要的。我想要的是这一行:

ggplot(data = df , aes(x=a, y = pred)) + geom_smooth()
覆盖于此:

ggplot(data = df , aes(x=a, y = b, color = factor(d))) + geom_jitter()

感谢所有帮助。

这就成功了,现在它不再按因素分组:

  ggplot(data = df ) +  
  geom_point(aes(x=a, y = b, color = factor(d))) +
  geom_smooth(aes(x=a, y = pred))
现在,在指定数据的位置绘制ggplot。在上面添加一个带有点(a和b)的图层,并在上面添加几何平滑线

但请确保同时查看两个图的y轴。在geom_smooth()绘图中,您可以看到漂亮的s形曲线。但是,Y轴范围为0.51到0.47

如果我们再看看你的总图,极限为0和1。你的线看起来几乎是直的,这是因为限制

这个方法对我不起作用。但是,我在这里找到了解决方法:

简言之:

设置
aes(组=1)
中的
stat\u smooth
(但图例有附加行)

或者更好-仅在
geom_point
中使用因子字段,而不是
ggplot
(这东西有干净的图例):


pred
vs.
a
的行添加到
b
vs.
a
的绘图中是没有意义的。它恰好“看起来”在这种情况下起作用,因为所有预测变量的范围都在0到1之间,与
pred
的范围相同,这是一种概率,因此也在0到1之间。但是你把苹果放在桔子上了。看起来很棒——谢谢。。。今天学到了一些关于ggplot的新知识:)
ggplot(data = df , aes(x=a, y = pred)) + geom_smooth()
ggplot(data = df , aes(x=a, y = b, color = factor(d))) + geom_jitter()
  ggplot(data = df ) +  
  geom_point(aes(x=a, y = b, color = factor(d))) +
  geom_smooth(aes(x=a, y = pred))
ggplot(mtcars, aes(x = hp, y = mpg, colour = factor(vs))) + geom_point() +
  stat_smooth(aes(group = 1), method = "lm", formula = y ~ x, se = FALSE)
ggplot(mtcars, aes(x = hp, y = mpg)) + geom_point(aes(colour = factor(vs))) +
  stat_smooth(method = "lm", formula = y ~ x, se = FALSE)