Оси растяжения на трехмерном графике R

У меня есть трехмерный график рассеяния (plot_ly), у которого по умолчанию все оси одинаковой длины - разумеется, в другом масштабе. Я хочу растянуть по одной оси (x), есть ли способ сделать это?

Пример кода с использованием mtcars:

> plot_ly(mtcars, x = ~ wt, y = ~ disp, z = ~mpg, 
          type = "scatter3d", mode = "marker", opacity = 0.6)

Я могу масштабировать или вращать график, но я хочу, чтобы ось x по умолчанию была вдвое длиннее осей y и z.

результат по умолчанию


person Gautam    schedule 05.04.2018    source источник
comment
Может быть, aspectratio сумеет помочь? См. руководство plotly.   -  person csgroen    schedule 05.04.2018
comment
Спасибо! Как / где мне это добавить? Я безуспешно пытался добавить его в основную команду. Имея проблемы с поиском надлежащей документации poltly, их веб-сайт не очень подробно объясняет основы их пакета.   -  person Gautam    schedule 05.04.2018
comment
Очевидно aspectratio не является атрибутом scatter3d сюжета. Я тоже не очень разбираюсь в сюжете, но, возможно, использование макета может помочь.   -  person csgroen    schedule 05.04.2018


Ответы (1)


Может быть, вы могли бы попробовать это:

plot_ly(mtcars, x = ~ wt, y = ~ disp, z = ~mpg, 
        type = "scatter3d", mode = "marker", opacity = 0.6) %>% 
layout(scene = list(aspectmode = "manual", aspectratio = list(x=1, y=0.2, z=0.2)))

Просто отрегулируйте aspectratio, как хотите.

person MLavoie    schedule 10.04.2018