ggplot2 如何显示具有相同 y 但不同 x 的两条不同的回归线

Posted

技术标签:

【中文标题】ggplot2 如何显示具有相同 y 但不同 x 的两条不同的回归线【英文标题】:How ggplot2 shows two different regression lines with same y but different x 【发布时间】:2014-03-19 03:04:06 【问题描述】:

假设我有以下使用基本绘图功能的代码。

绘图(mydata$x1,mydata$y,xlab="x1",ylab="y",type="n")

abline(lm(y~x1,data=mydata))`

abline(lm(y~x2,data=mydata),lty=2)'

这将在一张图中显示两条回归线,一条是 y=p*x1,一条是 y=p*x2(p 是参数)

由于我对相同的 y 使用不同的 x,我如何使用 ggplot2 一起显示两条回归线? 我试图定义两个 geom_smooth。但结果不正确。

geom_smooth(aes(y=y,x=x1))+gemo_smooth(aes(y=y,x=x2))

【问题讨论】:

您能否提供有关您使用的完整 ggplot 命令的更多信息?我认为这没有足够的信息。 您的示例错误拼写“geom_smooth”并且未指定方法 ='lm'。请提供一个可重现的例子。 【参考方案1】: 指定方法='lm' 正确拼写 geom_smooth。

以下作品:

set.seed(1)
d <- data.frame(x1=runif(10),x2=runif(10),y=runif(10))
ggplot(d, aes(y=y)) + 
    geom_point(aes(x=x1)) + 
    geom_smooth(aes(x=x1),method='lm') +  
    geom_smooth(aes(x=x2),method='lm') 

【讨论】:

以上是关于ggplot2 如何显示具有相同 y 但不同 x 的两条不同的回归线的主要内容,如果未能解决你的问题,请参考以下文章

ggplot2:绘制具有不同截距但具有相同斜率的回归线

ggplot2 - 在大小图例中显示多个键(形状)

ValueError:x 和 y 必须具有相同的第一维,但具有形状 (6,) 和 (8,) [重复]

R - 具有共享/相同 x 和 y 轴的直方图

ValueError:x 和 y 必须具有相同的第一维,但具有形状

ggplot2中具有不同x尺度和不同几何图形的两个数据框的图例控制