我遇到了一个相当奇怪的错误,这个错误来自于 contourf() 函数。我想为我的 3D 投影设置特定的最小值和最大值,但是当我试图设置比 -+max(Z) 更大的值时,就会出现以下错误信息:
文件 "C:\Program Files\Python38\lib\site-packages\mpl_toolkits\mplot3d\art3d.py" 的第 768 行,在 do_3d_projection() 函数中,
zzs, segments_2d, self._facecolors2d, self._edgecolors2d, idxs =
ValueError: 没有足够的值可供解包 (期望 5 值,得到 0)
只有 -1 和 1 的 lmin、lmax 值是适用的或者更低的值。
以下是示例:
from pylab import *
mpName = 'seismic'
X = np.linspace(-np.pi, np.pi, 192)
Y = np.linspace(-np.pi, np.pi, 192)
X, Y = np.meshgrid(X, Y)
Z = np.sin(X*Y)
lmin,lmax = -2, 2 #
fig = plt.figure()
ax = plt.axes(projection='3d')
ax.contourf(Y, X, Z, cmap='RdBu', zdir='z', offset=np.pi, levels=np.linspace(lmin,lmax,20))
ax.set_xlim3d(-np.pi, np.pi)
ax.set_ylim3d(-np.pi, np.pi)
ax.set_zlim3d(-np.pi, np.pi)
plt.show()