【问题标题】:How do I add a non-linear model to a scatterplot?如何将非线性模型添加到散点图中?
【发布时间】:2020-04-29 18:11:03
【问题描述】:

我想在我的散点图中添加一个带有置信带的非线性模型。为了解释,我使用了从 0 到 1000 m 的温度、盐度等的垂直深度剖面数据。交换轴后,不幸的是,我未能添加带有置信带的回归模型。如果你们中的任何人可以帮助我开始使用,我将不胜感激。

我的数据如下所示:

     CTD Area Station Cast    Lat  Long Month Day Hour Temp  Sal    DO Fluo Depth
898 9102    1      12    1 -44.59 174.2    10  24   20 10.7 34.6 282.9  1.7   1.0
899 9102    1      12    1 -44.59 174.2    10  24   20 10.7 34.6 282.4  1.5   2.0
900 9102    1      12    1 -44.59 174.2    10  24   20 10.7 34.6 282.7  1.5   3.0
901 9102    1      12    1 -44.59 174.2    10  24   20 10.7 34.6 282.5  1.6   4.0
902 9102    1      12    1 -44.59 174.2    10  24   20 10.7 34.6 282.3  1.8   5.0
903 9102    1      12    1 -44.59 174.2    10  24   20 10.7 34.6 282.4  1.9   6.0
904 9102    1      12    1 -44.59 174.2    10  24   20 10.7 34.6 282.8  1.8   7.0
905 9102    1      12    1 -44.59 174.2    10  24   20 10.7 34.6 282.7  1.7   7.9
906 9102    1      12    1 -44.59 174.2    10  24   20 10.7 34.6 282.2  1.7   8.9
907 9102    1      12    1 -44.59 174.2    10  24   20 10.7 34.6 282.2  2.1   9.9
908 9102    1      12    1 -44.59 174.2    10  24   20 10.7 34.6 282.1  1.9  10.9
909 9102    1      12    1 -44.59 174.2    10  24   20 10.7 34.6 282.2  1.7  11.9
910 9102    1      12    1 -44.59 174.2    10  24   20 10.7 34.6 282.4  2.3  12.9
911 9102    1      12    1 -44.59 174.2    10  24   20 10.7 34.6 282.8  1.7  13.9
912 9102    1      12    1 -44.59 174.2    10  24   20 10.7 34.6 282.9  1.4  14.9
913 9102    1      12    1 -44.59 174.2    10  24   20 10.7 34.6 283.0  1.5  15.9
914 9102    1      12    1 -44.59 174.2    10  24   20 10.7 34.6 282.9  1.4  16.9
915 9102    1      12    1 -44.59 174.2    10  24   20 10.7 34.6 282.4  1.6  17.9
916 9102    1      12    1 -44.59 174.2    10  24   20 10.7 34.6 281.5  1.6  18.9
917 9102    1      12    1 -44.59 174.2    10  24   20 10.7 34.6 280.9  1.5  19.9
918 9102    1      12    1 -44.59 174.2    10  24   20 10.7 34.6 281.9  1.9  20.9
919 9102    1      12    1 -44.59 174.2    10  24   20 10.7 34.6 284.8  1.4  21.9
920 9102    1      12    1 -44.59 174.2    10  24   20 10.7 34.6 286.4  1.5  22.8
921 9102    1      12    1 -44.59 174.2    10  24   20 10.7 34.6 286.5  1.8  23.8
922 9102    1      12    1 -44.59 174.2    10  24   20 10.7 34.6 285.7  1.8  24.8

在给定的示例中,最上面 25 m 的温度没有变化,但相信我,它在下面会发生变化。

到目前为止,我的代码如下所示:

p1<-ggplot(A1,aes(x=Temp,y=Depth,group=Cast))+
  geom_point()+xlim(c(6,12))+scale_y_reverse(lim=c(500,0))
p1

【问题讨论】:

  • 你的型号是什么?大多数模型会给你预测和置信区间,你可以将它们添加到你的情节中。
  • 我还没有模型;不知道如何想出一个最好的。数据看起来像一个多项式形状,定义不是线性的或指数的。
  • 如果你没有模型,你可以在你的 yx 感兴趣的变量上拟合一个非参数函数(我认为分别是温度和深度)。为此,您可以使用stats 包中的lowesssmooth.spline 函数或mgcv 函数中的gam 函数。后者的文档内容为:“对于使用拟合模型预测的任何数量,置信/可信区间很容易获得。”以下问题的答案也可能会派上用场:stackoverflow.com/questions/23852505/…
  • 谢谢您,非常感谢您的建议!

标签: r ggplot2 plot profile


【解决方案1】:

ggplot提供了用geom_smooth自动拟合黄土曲线的可能性:

ggplot(A1,aes(x=Temp,y=Depth,group=Cast)) +
  geom_point() +
  geom_smooth() +
  xlim(c(6,12)) + 
  scale_y_reverse(lim=c(500,0))

但是,如果您没有想要展示的实际模型,这是否符合您的需要,这是一个问题。

【讨论】:

    猜你喜欢
    • 2019-08-17
    • 1970-01-01
    • 2020-03-30
    • 2015-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-01
    • 1970-01-01
    相关资源
    最近更新 更多