所以我对R中的整个3D绘图相当新,并且花了最后一天在这里和其他网站/书籍中阅读各种文章和帖子。我必须承认,我仍然迷失。因此,非常感谢人们给予我的任何帮助/建议!
好的,这是我的问题(带有示例数据)。我有3个地点(A-C)连续12年(2001 - 2012年)采样一些措施,有很多零。所以我在表/矩阵/数据框中有这些数据:
LocationA<-c(0,0,0.83,0.167,0.167,0.083,0.25,0.212,0,0.083,0,0)
LocationB<-c(0,0,0,0,0,0,0,0,0,0.212,0,0)
LocationC<-c(0.633,0.462,0.167,0.467,0,0.167,0.451,0.333,0.462,0.595,0,0)
TestMat<-cbind(LocationA,LocationB,LocationC)
rownames(TestMat)<-c(2001:2012)
我想要的是一个地形图,x轴是位置,z轴是年份,y轴是我测量的东西的值。我可能会开放使用条形图,但理想情况下像wireframe()这样的东西最好。我一直在搞乱各种功能和包,但我不知道为什么我在做什么不起作用。
非常感谢你的帮助!我完全清楚我可能只是一个白痴而没有得到它,所以谢谢你对我的支持!
干杯!
编辑:
所以我把它改成了“长读”。 x值不能是非数字的,所以我将它们更改为x2(如下所示)。
x<-c(rep("LocationA",12),rep("LocationB",12),rep("LocationC",12))
y<-rep(c(2001:2012),3)
z<-c(LocationA,LocationB,LocationC)
x2<-c(rep(1,12),rep(2,12),rep(3,12))
然后我使用了wireframe()函数:
wireframe(z~x2*y,xlab="Location",ylab="Year",zlab="Value",distance=0.4,zoom=0.6,
scales=list(arrows=FALSE,
x=list(at=c(1:3),label=c("A","B","C")),
y=list(at=c(2001:2012),label=c(2001:2012)),
z=list(at=c(0,0.2,0.4,0.6,0.8,1),label=c(0,0.2,0.4,0.6,0.8,1)),
distance=c(2,2,2)),
drape=TRUE)
现在,我无法弄清楚并且一直在摆弄的是着色。我知道drape()子函数允许我给晶格一个颜色变化的梯度,较高的值显示与较低的颜色不同的颜色。但是,我似乎无法让它发挥作用。它确实给了我一个颜色渐变,但最高值(在这里是0.83)应该是绿松石色(默认颜色渐变是粉红色 - 绿松石 - 后来会尝试改变它),实际上是对应的颜色〜 0.3值。没有附加错误消息或警告消息,我不知道为什么会发生这种情况......有什么想法吗?
再次感谢! :)