persp3d() 在x 是一个因子或字符变量时给出的错误意味着它只会在x 中使用数字(也可能在y 和z 中)所以x, y 必须是数字:
x <- 1:6
对应的月份名称:
month <- c("Jan","Feb","Mar","Apr","May","Jun")
我在这里撤回我之前的声明,现在我了解了 plot3d 如何将 z 值映射到由 x 和 y 定义的位置,因此 y 可以保持原样,但必须是数字:
y = c(2010,2011,2012)
另外,nrow(z) 必须与nrow(x) 相同,这从尝试相反时抛出的错误再次清楚。所以:
z = matrix(seq(1:18),nrow=6)
在没有默认轴的情况下绘制曲面:(从这里开始,该方法与我们在 R 中使用普通 2d 图形进行自定义轴非常相似)
library(rgl)
persp3d(x, y, z, axes=F, ylab="", zlab="")
box3d()
最后添加你的坐标轴:
axis3d(edge='x++', at=x, labels=month, tick=T)
axis3d(edge='y--', at=y, labels=y, tick=T, pos=c(0,0,0), line=-1)
axis3d(edge='z+-', at=as.integer(range(z)), labels=as.integer(range(z)), tick=T)