【发布时间】:2015-10-12 15:26:11
【问题描述】:
我想在 R 中生成一个 3D 表面,其中 y 是通量,x 是年龄,z 是降水。我的年龄范围在 0 到 152 之间,降水范围在 0 到 2600 之间。
我还有两个函数,其中通量是年龄或降水的函数:
Flux= 0.387217066*(Age^0.328086337)*(exp(-0.004177033*Age)
和
Flux= 1.117997*(1-exp(-exp(-5.426564)*(Preci-(-220.745499))
我想要实现的有点像this:
我尝试在 R 中使用包 plot3D 来做这件事,但没有成功(见下文)
Age<- as.matrix(seq(0:152))
Preci<-as.matrix(seq(from=10, to=2600, by=17))
Flux= as.matrix(0.387217066*(Age^0.328086337)*(exp(-0.004177033*Age)) - 1.117997*(1-exp(-exp(-5.426564)*(Preci-(-220.745499)))))
surf3D(Age, Preci, Flux, colvar = Flux, colkey = FALSE, facets = FALSE)
我收到此错误消息
Error in if (is.na(var)) ispresent <- FALSE else if (length(var) == 1) if (is.logical(var)) if (!var) ispresent <- FALSE :
argument is of length zero
【问题讨论】:
-
ggplot2不做 3D 绘图,但您可以使用rgl或lattice::wireframe。emdbook::curve3d()可能是一个有用的包装器。