我们以以下数据为例
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
)
}
谢谢
您可以使用
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