Question

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

Was it helpful?

Solution

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()
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top