Соотношение сторон в plot3D::persp3D в R

Кто-нибудь знает, как изменить соотношение сторон ширины и длины плоскости xy с помощью пакета plot3D? Например, как сделать так, чтобы ось x отображалась в два раза длиннее оси y (без изменения значений данных):

plot3D::persp3D(z = volcano)

изображение


person Oleg Melnikov    schedule 15.03.2016    source источник


Ответы (1)


Это сработало для меня:

persp3D(x=1:nrow(volcano)*2, y=1:ncol(volcano), z=volcano, scale=FALSE)

изображение

person Karolis Koncevičius    schedule 16.03.2016
comment
Спасибо за ответ. Я не хочу изменять значения данных, в том числе по оси x. Есть ли другой способ? Например, что-то вроде rgl::persp3d(...aspect=c(2,2,1)...) - person Oleg Melnikov; 16.03.2016
comment
Без проблем. Что касается оси x, обратите внимание, что в данных нет значений x, которые можно изменить. Что делает x=1:nrow(volcano)*2, так это сообщает графику, какие значения x ставить точки. А эта строка говорит: возьми номера строк матрицы вулканов (1:81) и умножь их на два, расширив их. Это ничего не изменит в данных о вулканах. - person Karolis Koncevičius; 16.03.2016
comment
Дело в том, что мои значения x и y более сложные (даты, время), и я бы предпочел оставить их как есть. - person Oleg Melnikov; 16.03.2016
comment
Может быть, тогда стоит подумать об использовании другой библиотеки? Вы пробовали rgl для 3D-графиков? Также я не уверен, откуда взялось это отвращение к расширению значений x только для построения графика. Если бы какая-то функция имела переменную x-scale, которой можно было бы присвоить значение 2, но внутри функция делала бы то же самое, что мы делаем здесь (умножая значения x на 2), вас бы это устроило? - person Karolis Koncevičius; 16.03.2016
comment
В каждой библиотеке есть свои минусы :) Да, я пробовал rgl (см. мой комментарий выше), но он настораживает в других аспектах... - person Oleg Melnikov; 19.03.2016