matplotlib 如何绘制3D矢量场

xxslljrj  于 2023-05-01  发布在  其他
关注(0)|答案(2)|浏览(158)

有没有办法在matplotlib中绘制一个3D向量场?我看过《颤抖》,但它只谈到了一个“2-D矢量场的箭头”。3D在某个地方是否有对应的?
LMGTFY:
我想这个搜索词会返回3D对应的文档:

"3-D vector field of arrows" matplotlib

但它返回零个结果

wrrgggsh

wrrgggsh1#

从matplotlib 1开始4.x,箭现在可以3D绘图了。
quiver3d演示。py在examples目录中:

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()

2ul0zpep

2ul0zpep2#

我不这么认为matplotlib中的3D绘图是相当新的,这就是到目前为止的所有内容:http://matplotlib.sourceforge.net/mpl_toolkits/mplot3d/index.html
也许可以询问matplotlib邮件列表是否正在开发矢量图。

相关问题