将图例添加到多元线性回归图的单个图

Posted

技术标签:

【中文标题】将图例添加到多元线性回归图的单个图【英文标题】:Adding legend to a single plot of multiple linear regression plot 【发布时间】:2020-06-18 06:30:29 【问题描述】:

我在一个图中绘制了来自两个不同数据集的两个 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')

【问题讨论】:

【参考方案1】:

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")

Graph without Legend

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

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

Graph with Legend

这似乎翻译成

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 参数来区分不同的系列。

【讨论】:

我试过了,但它并没有创造传奇,只是让情节变得丰富多彩。我的情节中需要一个传奇 @R_mad 听起来您是在要求图例范围内的图例(与我的示例图“带有图例的图”中提供的图例相反)。如果是这种情况,请考虑使用 + theme(),在 theme() 函数中有很多关于图例的参数。 @R_mad 相反,如果您说它根本没有创建图例,即使使用 color = 参数也是如此。然后下一步是提供您的部分数据,以便有人可以复制您的确切设置。

以上是关于将图例添加到多元线性回归图的单个图的主要内容,如果未能解决你的问题,请参考以下文章

Windows7怎样用Excel作多元线性回归

多元线性回归的计算公式是怎样的?

怎么对多元线性回归模型的回归系数β做t检验和F检验

回归分析 R语言 -- 多元线性回归

多元线性回归多重共线性检验及避免方法,简单点的

多元线性回归模型用r语言怎么来实现