R / ggplot2:同一轴上的多条回归线

R / ggplot2: Multiple regression lines on same axes

我需要在同一轴上绘制两个回归。为此,我的数据集中有 3 列(我们称它们为 A、B 和 C)。我想绘制 B 对 A,然后 C 对 A,并将它们作为不同颜色的回归线,数据点与其对应的线颜色相同。

更具体地说,为了创建单独的图,我在第一个图上使用了以下代码:

P1 <- ggplot(data=volboth, aes(x=control, y=vol30)) + 
geom_point(alpha=1, size=4, color="maroon") + 
ggtitle("Correlation Plot: Ground Survey (Control) vs 30m UAV Survey") + 
labs(x = expression(paste("Volume - Control Data - ", m^{3})), 
     y = expression(paste("Volume - Aerial Data - ", m^{3}))) + 
xlim(0, 5) + 
ylim(0, 5) + 
geom_smooth(method=lm, se=FALSE, fullrange=TRUE)

然后是第二个情节:

P2 <- ggplot(data=volboth, aes(x=vol10, y=control)) + 
geom_point(alpha=1, size=4, color="maroon") +
 ggtitle("Correlation Plot: Ground Survey (Control) vs 10m UAV Survey") + 
labs(x = expression(paste("Volume - Aerial Data - ", m^{3})), 
     y = expression(paste("Volume - Control Data - ", m^{3}))) + 
xlim(0, 5) + 
ylim(0, 5) + 
geom_smooth(method=lm, se=FALSE, fullrange=TRUE)

关于如何将两个图组合到同一个轴上并应用相应的视觉主题有什么想法吗?如果这能让事情变得更容易,我愿意使用标准 R(不是 ggplot2)。

require(ggplot2)
#first, some sample data
volboth <- data.frame(control=(0:100)/20,vol10=(50:150)/50,vol30=(120:20)/30)

#next, make a plot
P1 <- ggplot(data=volboth, aes(x=control, y=vol30)) + 
  geom_point(alpha=1, size=4, color="maroon") + 
  geom_smooth(method=lm, se=FALSE, fullrange=TRUE) +
#Now add a second layer, with same x, but other y (and blue color for clarity)
  geom_point(aes(y=vol10),alpha=1, size=4, color="blue") + 
  geom_smooth(aes(y=vol10),method=lm, se=FALSE, fullrange=TRUE) +
  ggtitle("Correlation Plot: Ground Survey (Control) vs 30m UAV Survey") + 
  labs(x = expression(paste("Volume - Control Data - ", m^{3})), 
       y = expression(paste("Volume - Aerial Data - ", m^{3}))) + 
  xlim(0, 5) + 
  ylim(0, 5)

print(P1)

这给了我这张图:
我在这里使用了 geom_point,但是如果你的观点很接近,那么你已经自己计算过了,geom_jitter 可能是一个更好的选择。