R 3d表面图与因子变量

时间:2014-10-22 13:56:25

标签: r plot rgl

我有一个非常简单的问题但是我无法理解。如何使用网格为以下数据创建3D曲面图。

x = c("Jan","Feb","Mar","Apr","May","Jun")
y = c("2010","2011","2012")
z = matrix(seq(1:18),nrow=3)

我尝试过类似的东西,但仍然无法得到我想要的东西。

persp3d(x, y, z)
plot3d(x, y, z)

感谢。

1 个答案:

答案 0 :(得分:2)

persp3d()是因子或字符变量时x给出的错误意味着它只会在x中使用数字(可能在y和{{1}因此z必须是数字:

x, y

相应的月份名称:

x <- 1:6

我在此处撤回我之前的陈述,现在我了解month <- c("Jan","Feb","Mar","Apr","May","Jun") 如何在plot3dx定义的位置映射z值,以便y保持不变,但必须是数字:

y

此外,y = c(2010,2011,2012) 必须与nrow(z)相同,再次从相反的尝试中抛出的错误中可以清楚地看出这一点。所以:

nrow(x)

在没有默认轴的情况下绘制曲面:(从这里开始,方法与我们在R中使用普通2d曲线的自定义轴非常类似)

z = matrix(seq(1:18),nrow=6)

最后添加你的轴:

library(rgl) persp3d(x, y, z, axes=F, ylab="", zlab="") box3d()

enter image description here