Значение графика R rgl не отображается на оси

Я использую пакет rgl в r для построения некоторых данных. Как сделано здесь:

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

По какой-то причине шкала не совпадает с графиком.

Я изменил масштаб осей X и Z, чтобы увеличить рельеф, который, как я изначально думал, вызывает проблему, но в приведенном ниже примере проблема возникает, даже если я изменяю 0,02 на 1.

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")

Почему это происходит?

Спасибо за вашу помощь! Мат


person MatAff    schedule 11.03.2013    source источник
comment
воспроизводимый пример, пожалуйста?   -  person Ben Bolker    schedule 11.03.2013


Ответы (1)


Без указания значения аргумента labels в axis3d я получаю ось с шестью делениями. Поскольку вы предоставляете вектор только с четырьмя значениями для аргумента labels, похоже, что axis3d повторно использует эти значения, чтобы покрыть все деления.

Сообщите axis3d, на каких значениях данных вы хотели бы поставить отметки, указав значение аргумента at:

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

p.s. Мне пришлось добавить следующую строку перед rgl.surface(), чтобы избежать segfault

rgl.open()
person BenBarnes    schedule 11.03.2013
comment
я тоже (на segfault); вероятно, стоит сообщить сопровождающему, если у вас есть на это минутка... - person Ben Bolker; 12.03.2013
comment
Это здорово, это исправить! Большое спасибо. - person MatAff; 12.03.2013