我有一个三列数据文件(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
并生成一条等值线..我该怎么办?
使用contourf,如下所示:
plt.contourf(xi,yi,zi,cmap=cm.hot, levels=20)
通过ax = plt.gca()
获取当前轴,并通过ax.set_facecolor('black')
或ax.patch.set_facecolor('black')
更改其颜色。