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')
更改其颜色。
我有一个 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')
更改其颜色。