문제

I'm using the rgl package in r to plot some data. As done here:

http://www.r-bloggers.com/creating-3d-geographical-plots-in-r-using-rgl/

For some reason the scale does not align with the graph.

I changed the scale of the X and Z axis to increase the relief, which I initially thought was causing the issue, but in the example below, even if I change 0.02 to 1 the issue occurs.

library(rgl)

rdata <- c(0.8926,0.8986,0.9478,0.9672,0.916,0.912,0.9324,0.9532,0.9488,0.9376,0.921,0.927,0.9728,0.956,0.9318,0.9202)
labs <-c(100,200,500,1000)

rmatrix <- matrix(rdata, nrow=4,ncol=4,)
dimnames(rmatrix) <- list(labs,labs)

y <- as.matrix(rmatrix)
x <- 0.02*(1:nrow(y))
z <- 0.02*(1:ncol(y))

rgl.surface(x, z, y, color="red", back="lines")
axis3d('x--', labels=row.names(rmatrix),color="black")

Why is this happening?

Thanks for your help! Mat

도움이 되었습니까?

해결책

Without supplying a value to the labels argument in axis3d, I get an axis with six tick marks. Since you supply a vector with only four values to the labels argument, it looks like axis3d recycles those values to cover all the tick marks.

Tell axis3d at what data values you'd like to place the tick marks by supplying a value to the at argument:

axis3d('x--', at = x, labels=row.names(rmatrix),color="black")

p.s. I had to add the following line before rgl.surface() to avoid getting a segfault

rgl.open()
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top