3D векторное поле в матплотлибе - PullRequest
16 голосов
/ 20 августа 2011

Есть ли способ построить трехмерное векторное поле в matplotlib? Я видел колчан , но он говорит только о "двумерном векторном поле стрелок". Где-нибудь есть 3D-аналог?

LMGTFY:
Я полагал, что документация для трехмерного аналога будет возвращена этим поисковым термином:

"3-D vector field of arrows" matplotlib

Но он возвращает ноль результатов

Ответы [ 2 ]

26 голосов
/ 04 июля 2014

Начиная с matplotlib 1.4.x, теперь колчан может строить в 3d.

quiver3d_demo.py в каталоге примеров :

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

fig = plt.figure()
ax = fig.gca(projection='3d')

x, y, z = np.meshgrid(np.arange(-0.8, 1, 0.2),
                      np.arange(-0.8, 1, 0.2),
                      np.arange(-0.8, 1, 0.8))

u = np.sin(np.pi * x) * np.cos(np.pi * y) * np.cos(np.pi * z)
v = -np.cos(np.pi * x) * np.sin(np.pi * y) * np.cos(np.pi * z)
w = (np.sqrt(2.0 / 3.0) * np.cos(np.pi * x) * np.cos(np.pi * y) *
     np.sin(np.pi * z))

ax.quiver(x, y, z, u, v, w, length=0.1)

plt.show()

enter image description here

0 голосов
/ 20 августа 2011

Я так не думаю. 3D-черчение в matplotlib довольно новое, и это все, что нужно сделать: http://matplotlib.sourceforge.net/mpl_toolkits/mplot3d/index.html

Возможно, спросите список рассылки matplotlib, если разрабатываются векторные графики.

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