Как изменить размер сетки на графике? - PullRequest
2 голосов
/ 29 апреля 2019

У меня есть список значений X, список значений Y, и для каждой пары (X, Y) у меня есть значение Z в виде матрицы.

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

Рассмотрим следующий пример:

import plotly.plotly as py
import plotly.graph_objs as go
import numpy as np
x = np.arange(1, 22, 1)
y = np.array([1, 3.1, 5.7, 10, 15, 20])
mean = [0]*21
cov = np.identity(21)
z = np.random.multivariate_normal(mean, cov, 18)
data = [go.Surface(x=x, y=y, z=z)]
py.plot(data)

enter image description here

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

1 Ответ

3 голосов
/ 29 апреля 2019

Вы можете вручную установить соотношение сторон осей в макете рисунка:

data = [go.Surface(x=x, y=y, z=z)]

layout = go.Layout(
    scene = go.layout.Scene(
    aspectmode='manual',
    aspectratio=go.layout.scene.Aspectratio(
        x=2, y=1, z=0.5
    ))
)
fig = go.Figure(data=data, layout=layout)

py.plot(fig)

При этом ось X будет вдвое длиннее оси Y, а ось Z будет вдвое меньше оси Y:

Plotly output after fixing aspect ratio

См. Официальные примеры Plotly .

...