0

因此,我对 R 中的整个 3D 绘图相当陌生,并且在最后一天阅读了这里和其他网站/书籍中的各种文章和帖子。我不得不承认,我还是迷路了。因此,人们可以给我的任何帮助/建议将不胜感激!

好的,这是我的问题(带有示例数据)。我连续 12 年(2001-2012 年)对 3 个位置 (AC) 进行了抽样测量,其中有很多零。所以我在表/矩阵/数据框中有这些数据:

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 轴是我正在测量的东西的值。我可能会对使用条形图持开放态度,但理想情况下,最好使用线框()之类的东西。我一直在搞各种功能和包,但我无法弄清楚为什么我正在做的事情不起作用。

非常感谢您的帮助!我完全知道我可能只是有点白痴而没有得到它,所以谢谢你对我的包容!

干杯!

编辑:

所以我把它改成了“长读”。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 值。没有附加错误消息或警告消息,我不知道为什么会这样......有什么想法吗?

再次感谢!:)

4

0 回答 0