matplotlib 中的 plot3d 图有点倾斜

The plot3d figure in matplotlib is somewhat canted

我正在使用 matplotlib 获取瀑布图,但结果看起来很奇怪。任何人都知道它可能有什么问题吗?
在这里,我附上了数字。第二个是相同的数据,但在一个普通的情节中。为什么瀑布图中的颜色没有填满?

代码如下:

def water_fall_1(x,y,Z):
    #x=[...]
    #y=[...]
    #Z=[[z1],[z2],...z[ny]]
    import numpy as np
    import matplotlib.pyplot as plt
    from matplotlib.collections import PolyCollection
    from matplotlib.colors import colorConverter
    from mpl_toolkits.mplot3d import Axes3D

    figs=[]
    for jc in range(len(y)):
        figs.append(list(zip(x,Z[jc])))
    x=np.array(x)
    y=np.array(y)
    Z=np.array(Z)
    xmin=np.floor(np.min((x.astype(np.float))))
    xmax=np.ceil(np.max((x.astype(np.float))))
    ymin=np.min((y.astype(np.float)))
    ymax=np.max((y.astype(np.float)))
    zmin=(np.min((Z.astype(np.float))))
    zmax=np.max((Z.astype(np.float)))

    fig=plt.figure()
    ax = Axes3D(fig)
    poly = PolyCollection(figs, facecolors=colorConverter.to_rgba("r", alpha=0.5))
    ax.add_collection3d(poly, zs=y.astype(np.float), zdir='y')
    ax.set_xlim(xmin,xmax)
    ax.set_ylim(ymin,ymax)
    ax.set_zlim(zmin,zmax)
    ax.set_xlabel('$\omega$')
    ax.set_ylabel('$T$')
    #ax.set_zlabel('$\frac{1}{2}$')
    plt.show()

曲线完全填满。 IE。曲线两点之间的表面是红色的。

考虑以下示例:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.collections import PolyCollection
from mpl_toolkits.mplot3d import Axes3D

bottom=-0.3
x = np.linspace(0,6, num=50)
z = np.sinc(x-4)
verts = zip(x,z)

#verts=verts + [(x.max(),bottom),(x.min(),bottom)]

fig=plt.figure()
ax = Axes3D(fig)
poly = PolyCollection([verts], facecolors="r", alpha=0.5)
ax.add_collection3d(poly, zs=1, zdir='y')
ax.set_xlim(x.min(),x.max())
ax.set_ylim(0,2)
ax.set_zlim(bottom,z.max())

plt.show()

生成以下图,其中曲线点之间的所有内容均按预期填充。

如果我们现在想要填充曲线和一些底线之间的区域,我们需要添加一些点,

verts=verts + [(x.max(),bottom),(x.min(),bottom)]

这样底线是曲线的一部分,因此也可以被填充。