在Matplotlib 3Dplot中绘制流线型?

时间:2018-01-21 23:27:59

标签: python matplotlib

我正在尝试使用Matplotlib在3D绘图中绘制流线图。对于简化,我想使用函数streamplot(),因为它简单。这是我从图库中修改的MWE(尝试streamplot()调用):

from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
from matplotlib import cm
X, Y, Z = axes3d.get_test_data(0.05)

fig = plt.figure()
ax = fig.gca()
plt.streamplot(X, Y, X, Y)
plt.show()

fig = plt.figure()
ax = fig.gca(projection='3d')
cset = ax.contour(X, Y, Z, zdir='z', offset=-10, cmap=cm.coolwarm)
ax.set_zlim(-100, 100)
plt.show()

fig = plt.figure()
ax = fig.gca(projection='3d')
cset = ax.streamplot(X, Y, X, Y, zdir='z', offset=-10, cmap=cm.coolwarm)
ax.set_zlim(-100, 100)
plt.show()

第一个和第二个示例按预期工作,但是,第三个示例给出了这个错误:

TypeError: streamplot() got an unexpected keyword argument 'zdir'

暗示了未实施的可能性。如果我检查Axes3D,我会得到函数streamplot()

In [28]: Axes3D.streamplot
Out[28]: <function matplotlib.axes._axes.Axes.streamplot>

我们从中得到streamplot()是2D版本,因此无法直接在3D图中使用。

有没有办法绕过这个并在3D图中获得流线型平面?

0 个答案:

没有答案