我需要在同一轴上绘制两个回归。为此,我的数据集中有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)。
答案 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)
这给了我这张图:
我在这里使用过geom_point
,但如果你的观点紧密相关,你自己已经解决了问题,geom_jitter
可能是更好的选择。