繁体   English   中英

如何在R中创建3D表面图?

[英]How do I create a 3D surface plot in R?

我正在使用多元线性回归。

我有z输出,这是ax * y交互作用的结果。

我想创建这些数据的表面图,但是没有任何运气。 我已经尝试了突击队的线框和性能,但似乎我还无法设计突击队。

我已经创建了一个漂亮的scatterplot3d,但是如何创建相同数据的表面图呢?

我假设您说在线性回归中拟合3D曲面后,您知道自己在做什么。 perspwireframe期望的是x和y值的网格,以及每个网格点处的预测z高度。 您可以使用expand.grid生成此expand.grid 这是一个指示性的例子。

preddf <- expand.grid(x=seq(xmin, xmax, len=51),
                      y=seq(ymin, ymax, len=51))

preddf$z <- predict(model, preddf)

persp(preddf)

xminxmaxyminymax替换为预测变量的范围,将51替换为所需的网格大小/密度。

另一个可选方案expand.grid是使用outer ,它比较快。

使用@HongOoi数据:

z <- outer(x,y, function(x,y) 
  predict(mod,data.frame(x=x,y=y)))
persp(x,y,z)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM