[英]How do i create a 3d surface plot in R If I have a dataframe of 3 columns?
[英]How do I create a 3D surface plot in R?
我正在使用多元线性回归。
我有z输出,这是ax * y交互作用的结果。
我想创建这些数据的表面图,但是没有任何运气。 我已经尝试了突击队的线框和性能,但似乎我还无法设计突击队。
我已经创建了一个漂亮的scatterplot3d,但是如何创建相同数据的表面图呢?
我假设您说在线性回归中拟合3D曲面后,您知道自己在做什么。 persp
和wireframe
期望的是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)
将xmin
, xmax
, ymin
和ymax
替换为预测变量的范围,将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.