【问题标题】:ggplot2 - Plot ymin and ymax as lines in stat_smoothggplot2 - 将 ymin 和 ymax 绘制为 stat_smooth 中的线
【发布时间】:2017-10-02 07:45:00
【问题描述】:

我正在使用stat_smooth 函数绘制带有ggplot2 的线性回归线。

正如预期的那样,该函数计算预测值、置信区间和标准误差,如帮助页面上所述。

  • y:预测值
  • ymin:均值附近的较低逐点置信区间
  • ymax:均值附近的上点置信区间
  • se:标准错误

绘制 95% 置信区间的默认方法类似于 geom_ribbon 的输出。

我想将yminymax 绘制为线条,没有灰色阴影区域。

有没有办法直接在函数中做到这一点?我必须直接访问这些值吗?

编辑:该图是一个点图,回归线的目标只是可视化趋势。因此,我没有lm 对象。当然,我可以绘制回归对象的输出,但我想知道是否可以充分利用非常方便的 stat_smooth 并手动设置绘图参数

【问题讨论】:

  • 除了@AdamQuek 的回答之外,您还可以使用stat_smooth(method = "lm", se = F) + stat_smooth(method = "lm", geom = "ribbon", fill = NA, linetype = "dashed", colour = "black") 作为解决方法。但是,无法移除现在清晰的轮廓色带的“端盖”。
  • 谢谢@Brian,这正是我想要的(但“端盖”......)。您可以添加它作为答案,我会打勾

标签: r plot ggplot2


【解决方案1】:

这是一个在 iris 数据集上使用 broomggplot2 的示例:

fit <- lm(Petal.Length ~ Sepal.Length, iris)
newd <- augment(fit)

ggplot(newd, aes(x=Sepal.Length)) +
  geom_point(aes(y=Petal.Length)) +
  geom_line(aes(y=.fitted)) +
  geom_line(aes(y=.fitted + 1.96*.se.fit), colour="blue", linetype="dotted") + 
  geom_line(aes(y=.fitted - 1.96*.se.fit), colour="blue", linetype="dotted") 

上面相当于stat_smoothmethod="lm")函数:

ggplot(iris, aes(Sepal.Length, Petal.Length)) + 
     geom_point() + 
     stat_smooth(method="lm")

【讨论】:

  • 谢谢亚当,其实我没有说清楚,我很抱歉。我有一个点图,我没有 lm 对象。当然我可以使用你的方法,但我想知道是否可以直接使用非常方便的 stat_smooth 并手动更改绘图参数。反正我正在编辑问题
  • 由于您正在编辑您的问题,请输入一个可重现的示例,您的代码和您目前获得的图像。很难按原样理解您要询问的内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-12
  • 1970-01-01
  • 2021-10-30
  • 1970-01-01
  • 1970-01-01
  • 2017-09-17
  • 1970-01-01
相关资源
最近更新 更多