首页 > 解决方案 > 将图例添加到多元线性回归图的单个图

问题描述

我在一个图中绘制了来自两个不同数据集的两个 ggplot。图是简单的线性回归。我想为图中不同颜色的线和点添加图例。我怎样才能做到这一点?我用于绘图的代码如下。但是,我没有为此添加一个理想的传说。

ggplot() + 
     geom_point(aes(x = Time_1, y = value1)) +
     geom_point(aes(x = Time_2, y = value2)) +
     geom_line(aes(x = Time_1, y = predict(reg, newdata = dataset)))+
     geom_line(aes(x = Time_Month.x, y = predict(regressor, newdata = training_set)))+ 
     ggtitle('Two plots in a single plot')

标签: rggplot2colorslinear-regressionlegend

解决方案


如果数据中有组,ggplot2 会自动添加图例。您的原始代码为 ggplot() 提供了最少的信息,基本上足以让它工作,但不足以创建图例。

由于由于两个不同的回归,您的数据来自两个不同的对象,因此在这种情况下,您似乎只需要向每个 geom_point() 和每个 geom_line() 添加 'color = "INSERT COLOR NAME"' 参数。例如,使用 R 的内置 mtcars 数据集,您所拥有的类似于

ggplot(mtcars) + geom_point(aes(x = cyl, y = mpg)) + geom_point(aes(x = cyl, y = wt)) + ggtitle("Example Graph")

没有图例的图表

你想要的可以通过使用类似的东西来获得,

ggplot(mtcars) + geom_point(aes(x = cyl, y = mpg, color = "blue")) + geom_point(aes(x = cyl, y = wt, color = "green")) + ggtitle("Example Graph")

带图例的图表

这似乎转化为

ggplot() + 
 geom_point(aes(x = Time_1, y = value1, color = "blue")) +
 geom_point(aes(x = Time_2, y = value2, color = "green")) +
 geom_line(aes(x = Time_1, y = predict(reg, newdata = dataset), color = "red"))+
 geom_line(aes(x = Time_Month.x, y = predict(regressor, newdata = training_set), color = "yellow"))+ 
 ggtitle('Two plots in a single plot')

您还可以使用 aes() 中的大小、形状或 alpha 参数来区分不同的系列。


推荐阅读