Есть ли лучший способ построения ортогональных осей с помощью Matplotlib? - PullRequest
0 голосов
/ 15 января 2019

Ahoy!

Я пытаюсь построить векторы в 3D с помощью функции matplotlib quiver. Чтобы помочь визуализировать их, я также хотел бы построить ортогональные оси с центром в начале координат.

В идеале, я бы хотел переместить так называемые шипы, но согласно этой SO-записи , это не легко исправить.

Я закончил тем, что построил оси в виде трех векторов вдоль x, y & z (см. Мой код ниже), но я не могу не думать, что это ужасное решение ... Любые входные данные будут высоко оценены.

Вот код:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

f = plt.figure(1)
ax=plt.gca()
soa = np.array([[0, 0, 0, 1, 0, 0],[0, 0, 0, 0, 1, 0],[0, 0, 0, 0, 0, 1]])
X, Y, Z, U, V, W = zip(*soa)
soa2 = np.array([[0,0,0,np.sqrt(2)/2,np.sqrt(2)/2,np.sqrt(2)/2]])
I, J, K, F, G, H = zip(*soa2)

fig = plt.figure()
ax=Axes3D(fig)
ax.quiver(X, Y, Z, U, V, W, color='black')
ax.quiver(I, J, K, F, G, H)
ax.set_xlim([-1, 1])
ax.set_ylim([-1, 1])
ax.set_zlim([-1, 1])
f.show()

А вот изображение, возвращаемое этим сценарием:

enter image description here

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