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

时间:2015-10-31 14:30:42

标签: r ggplot2 regression correlation

我需要在同一轴上绘制两个回归。为此,我的数据集中有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)。

1 个答案:

答案 0 :(得分:0)

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)

这给了我这张图: enter image description here
我在这里使用过geom_point,但如果你的观点紧密相关,你自己已经解决了问题,geom_jitter可能是更好的选择。