как изменить 3D-график Matplotlib на вид сбоку? - PullRequest
0 голосов
/ 06 сентября 2018

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

plot(x, y)

Я имею в виду

import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
ax = fig.gca(projection='3d')
ax.plot(x, y, z, label='parametric curve')

plt.show()

какая функция matplotlib может изменить вид на вид сбоку? Чтобы я мог добавить кнопки для графического интерфейса matplotlib, на котором при щелчке пользователя трехмерный график будет отображаться как вид сверху / вид слева / ... и пользователь все еще может использовать мышь для поворота графика в трехмерном режиме. позже, как то, что мы можем сделать в программном обеспечении САПР.

спасибо

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

Если я понимаю ваш вопрос, вы ищете функцию Axes3D.view_init

view_init (высота = нет, азим = нет)

Установите высоту и азимут осей.

Это можно использовать для программного поворота осей.

‘elev’ сохраняет угол места в плоскости z. ‘Azim’ хранит азимутальный угол в плоскости x, y.

если elev или azim равны None (по умолчанию), то используется начальное значение, указанное в конструкторе Axes3D.

0 голосов
/ 06 сентября 2018

Это зависит от того, какой инструментарий пользовательского интерфейса вы планируете использовать. Matplotlib может использовать несколько бэкэндов, среди которых файловый бэкэнд, бэкэнд Qt4, бэкэнд Qt5, бэкэнд инструментария Wx и т. Д.

Если вы решили создать пользовательский интерфейс в python с использованием бэкэнда Qt, есть пример того, как встроить график matplotlib с помощью бэкэнда Qt в холст Qt: https://matplotlib.org/gallery/user_interfaces/embedding_in_qt_sgskip.html

Подобное встраивание может быть сделано для инструментария Wx. Я также предположил бы, что вы можете использовать matplotlib JS backend вроде http://mpld3.github.io/, и продолжить создание пользовательского интерфейса в Javascript

...