【问题标题】:Hardcode slope and intercept from lm into ggplot 's geom_abline从 lm 硬编码斜率和截距到 ggplot 的 geom_abline
【发布时间】:2017-07-12 13:40:05
【问题描述】:

我有回归线的斜率和截距的 R 代码。它看起来像这样:

A <- lm(formula=A~B,data=Averages)

我明白了:

Coefficients:
(Intercept)    B
     4.4108    0.4896

我想将该斜率和截距编码到我的代码中,以生成如下所示的 ggplot:

ggplot(Averages, aes(x=B,y=A,color=factor(C))) + 
    geom_point(aes(color= factor(C)),size=3) + 
    geom_smooth(method='lm', se=FALSE) + 
    geom_abline(intercept=4.4110, slope=0.4356,size=1)

现在,我根据上面的lm 代码的结果手动输入了图形 geom_abline 部分的截距和斜率。如何使用 R 将这些编码到图形代码中?

【问题讨论】:

  • 你可以从coef(A)获取这些值
  • 为什么除了geom_smooth之外还需要abline
  • geom_smooth 按组工作。 OP 还可以使用+ geom_smooth(method='lm', aes(group=1), se=FALSE) 来获取整个数据集的回归线。
  • Geom_smooth 为我提供了针对不同数据子集的多条不同的回归线,而 abline 则为我提供了一条代表整体数据的回归线。我想在我的图表中同时包含这两个。
  • 重复你的 geom_smooth 调用并添加 aes(color = NULL) 到它。

标签: r


【解决方案1】:

lm 函数将线性模型的属性存储在一个列表中。获取系数:

##Intercept
A$coefficients[1] 
## predictor 1
A$coefficients[2]

【讨论】:

    猜你喜欢
    • 2018-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-25
    相关资源
    最近更新 更多