gpt4 book ai didi

r - 在R中绘制线框和带有格子的云

转载 作者:行者123 更新时间:2023-12-04 04:14:13 25 4
gpt4 key购买 nike

我有一个很好的曲面,可以表示具有两个自变量的回归的非线性多部分回归结果。我想将回归预测值绘制为漂亮的3D表面,然后将实际值显示为围绕该表面反弹的点。这将是绘制回归线并将实际值显示为围绕该线的点的3D版本。我不知道如何用格来做到这一点。我很高兴在R中使用另一个图形库,但是我不知道其他人可以进行3D绘图。

这是我想做的事情的简化版本:

library(lattice)
#set up some simplified data
x <- seq(-.8, .8, .1)
y <- seq(-.8, .8, .1)
myGrid <- data.frame(expand.grid(x,y))
colnames(myGrid) <- c("x","y")
myGrid$z <- myGrid$x + myGrid$y
noise <- rnorm(length(myGrid$z),.3,.2)
myGrid$z2 <- myGrid$x + myGrid$y + noise

z是我的光滑表面,z2是我的嘈杂点,大部分位于表面上方。所以表面看起来像这样:
wireframe(myGrid$z ~ myGrid$x * myGrid$y, xlab="X", ylab="Y", zlab="Z")

enter image description here

点云如下所示:
cloud(myGrid$z2 ~ myGrid$x * myGrid$y, xlab="X", ylab="Y", zlab="Z")

enter image description here

是否可以将这两者都放在一个格子面板中?

最佳答案

我爱RGL!但是有时候,点阵中的3-D图也很有用-您可以编写自己的函数,然后将其传递给点阵函数的'panel'参数。例如,

mypanel <- function(x,y,z,...) {
panel.wireframe(x,y,z,...)
panel.cloud(x,y,z,...)
}
wireframe(myGrid$z ~ myGrid$x * myGrid$y, xlab="X", ylab="Y", zlab="Z",
panel=mypanel)

您调用的最后一个函数可以是wireframe()或cloud();在这两种情况下,由于在panel函数中都调用panel.wireframe()和panel.cloud(),结果应该是相同的。

编辑:感谢您指出,Aaron,然后您可以将z2作为另一个变量传递:
mypanel <- function(x,y,z,z2,...) {
panel.wireframe(x,y,z,...)
panel.cloud(x,y,z2,...)
}
wireframe(z ~ x * y, data=myGrid, xlab="X", ylab="Y", zlab="Z",
panel=mypanel, z2=myGrid$z2)

关于r - 在R中绘制线框和带有格子的云,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1406202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com