pyplot Как изобразить разброс и колчан в 3D на одних и тех же осях? - PullRequest
0 голосов
/ 25 июня 2018

Я хочу напечатать точечный график точек и добавить их основные направления.

Итак, у меня есть массив векторов (в 3D) [x, y, z] к [u, v, w], который я хочу отобразить и другой массив точек в 3D.

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


fig = plt.figure()
ax = fig.gca(projection='3d')
ax.quiver(x, y, z, u, v, w, length=0.1, normalize=False)
# if i stop here I see the quiver
ax.scatter(X[:, 0], X[:, 1], X[:, 2])
plt.show() # here I see only the scatter

Ответы [ 2 ]

0 голосов
/ 25 июня 2018

Взгляните сюда 3D-сюжет , это именно то, что вы хотите.

0 голосов
/ 25 июня 2018

Библиотека mplot3d представляет собой простой график, который копирует форму трехмерных графиков, а не фактически рисует их.В результате вы не можете иметь два четких графика в одной оси.Вы можете ясно увидеть это, нарисовав две поверхности, слегка смещенные в одну сторону.Он строит один из них, а затем другой, поэтому глубина будет испорчена.Сказав это, это не проблема с вами.Вы не предоставили никакой информации о ваших данных, но для фиктивного случая, который я сделал, сюжет кажется разумным: из mpl_toolkits.mplot3d import Axes3D

import matplotlib.pyplot as plt
fig = plt.figure();ax = fig.gca(projection='3d')
ax.quiver([0,0,0], [0,0,0], [0,0,0], [5,0,0], [0,5,0], [0,0,5], length=0.1, normalize=False)
ax.scatter([0,1,2,3], [1,2,1,2],[-1,0,1,2])

enter image description here Попробуйте этокод и посмотреть, если вы получите те же результаты или нет?Возможно, ваш колчановый график намного меньше диапазона рассеянного графика, поэтому вы визуально его пропускаете.

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