Python matplotlib中的plot3d图形有些倾斜

Python matplotlib中的plot3d图形有些倾斜,python,matplotlib,waterfall,Python,Matplotlib,Waterfall,我正在使用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 ma

我正在使用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()
曲线已完全填充。即,曲线点之间的曲面为红色

考虑以下示例:

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)]
因此,底线是曲线的一部分,因此也可以填充。

您可以在图像标记前面添加感叹号,使其显示为内联。像这样:
![Fig1][1]
对不起,据说我的名声不够….-!你所说的“未完全填满”是什么意思?你能看到在第一个图中,它的一部分看起来像是被切割的吗?缺少的部分是一个三角形。我所期望的是红色(x=0)将继续保持原来的颜色。感谢帮助我解决声誉问题的人。太好了!~谢谢