Python matplotlib中的三维矢量场

Python matplotlib中的三维矢量场,python,vector,3d,matplotlib,Python,Vector,3d,Matplotlib,有没有办法在matplotlib中绘制三维向量场?我见过,但它只谈到“二维箭头向量场”。某处有3D对应物吗 LMGTFY: 我想这个搜索词会返回3D副本的文档: "3-D vector field of arrows" matplotlib 但是它返回零结果我不这么认为。matplotlib中的三维打印是相当新的,到目前为止仅此而已: 可能会询问matplotlib邮件列表是否正在开发矢量图。从matplotlib 1.4.x开始,quiver现在可以在3d中绘图 : mayavi可以绘制3D

有没有办法在matplotlib中绘制三维向量场?我见过,但它只谈到“二维箭头向量场”。某处有3D对应物吗

LMGTFY:
我想这个搜索词会返回3D副本的文档:

"3-D vector field of arrows" matplotlib

但是它返回零结果

我不这么认为。matplotlib中的三维打印是相当新的,到目前为止仅此而已:


可能会询问matplotlib邮件列表是否正在开发矢量图。

从matplotlib 1.4.x开始,quiver现在可以在3d中绘图

:


mayavi可以绘制3D矢量场:为什么x、y、z坐标在3D阵列中???我不懂怎么读。如何输入我自己的?任何帮助都是很好的,谢谢这些点不一定是3D阵列。您可以创建/加载自己的一维位置阵列x、y、z和相应的速度u、v、w。对奎弗的呼唤也是一样的。
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()