如何通过模型函数在点阵图中添加双曲/指数曲线

问题描述 投票:0回答:1

我们以以下数据为例

data(cars)    
xyplot(dist ~ speed, cars)

我想添加一个指数/双曲函数,如下面的代码所示,

但是使用与指数/双曲函数相关的模型函数。为了更清楚地说明,我知道通过向

panel.abline()
添加以下选项,可以通过
lattice
包的
xyplot
绘制多个模型。你知道吗,我怎样才能做到同样的事情 - 通过
dist and speed variables
之间的显式模型函数绘制双曲曲线 - 就像
lm()
中的
panel.abline()
那样?

  panel.abline(lm(dist ~ speed, data = cars), col.line = "red")
         panel.abline(lm(dist ~ I(speed^2), data = cars), col.line = "green")
         panel.abline(lm(dist ~ I(speed^3), data = cars), col.line = "blue")
         panel.superpose(x, y, ..., type = c("p", "r"), pch = 16, lty = 1:3, lwd = 2)
         panel.curve(
           fun(x/ line_scale),
           from = from,
           to = to,
           type = "l",
           col = "blue",
           lwd = 3
         )
       }

谢谢

r curve lattice hyperbolic
1个回答
1
投票

您可以使用

panel.lines()
来完成此操作,并从包含变换的模型生成预测,然后展开变换(如果它位于因变量上)。这是一个例子,如果我明白你在问什么:

library(lattice)
data(cars)    
xyplot(dist ~ speed, cars, panel = function(x,y){
  panel.lines(x, exp(predict(lm(log(y) ~ x), newdata= data.frame(speed=x))), col.line="red")
  panel.points(x,y, col="gray50")
})

创建于 2024-04-04,使用 reprex v2.0.2

© www.soinside.com 2019 - 2024. All rights reserved.