Ортогональные оси с трехмерной поверхностью в Plotly - PullRequest
0 голосов
/ 07 сентября 2018

Мне не удалось использовать scaleanchor для графика поверхности в Plotly:

x = np.linspace(0,9,100)
y = np.linspace(0,3,100)

mx, my = np.meshgrid(x,y)
mz = np.sin(my) * np.cos(mx)

trace = go.Surface(x=mx, y=my, z=mz)
layout = go.Layout( 
    yaxis={'scaleanchor':'x'},
    # zaxis={'scaleanchor':'x'},
)
py.iplot([trace], layout)

enter image description here Два вопроса:

  • zaxis не допускается в макете
  • yaxis={'scaleanchor':'x'} не имеет никакого эффекта, куб сверху не квадрат. Вот результат, который я хочу получить сверху (1 имеет одинаковую длину по x и y):

enter image description here

сделано с

import matplotlib.pylab as plt
plt.axes().set_aspect('equal', 'datalim')
plt.contour(mx, my, mz)

Есть идеи, как увидеть куб в виде куба и любую форму в 3D-графике с помощью Plotly?

Оливье.

1 Ответ

0 голосов
/ 02 октября 2018

Вот хитрость:

layout = go.Layout( 
    scene = {'aspectmode':'data'},
)

trace = go.Surface(x=mx, y=my, z=mz)
fig = go.Figure(data=[trace], layout=layout)
py.iplot(fig)

А вот и результат:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...