Python 来自数据文件的 matplotlib imshow

Python matplotlib imshow from data file

我有一个 3 列数据文件 (x y z1 z2 z3),其中 z 的值对应于网格点 x,y data file

我想使用 z1 从存储在文件中的数据创建一个 matplotlib.pyplot.imshow。我发现这段代码对我来说不能正常工作:

x,y,data1 = np.genfromtxt('cosrevalsjpdf.dat',usecols=(0,1,2),unpack=True,skip_header=0)
xll = x.min();  xul = x.max();  yll = y.min();  yul = y.max()
xi = np.linspace(x.min(), x.max(), 100) 
yi = np.linspace(y.min(), y.max(), 100) 
zi = scipy.interpolate.griddata((x, y), z, (xi[None,:], yi[:,None]), method='linear')

fig = plt.figure()
plt.imshow(zi, extent=[xll, xul, yll, yul], origin='lower', cmap=cm.hot, alpha=0.9)
plt.show() 

我想获得一个充满色彩的 2D 等高线图,不像使用 contourf 生成 iso 线..我该怎么做?

使用 contourf 如下:

plt.contourf(xi,yi,zi,cmap=cm.hot, levels=20)

我得到了这个..很好,但是我想将白色区域完全填充为黑色我该怎么做?

使用ax = plt.gca()获取当前坐标轴,使用ax.set_facecolor('black')ax.patch.set_facecolor('black')更改其颜色。