Python matplotlib 使用Matshow绘制图像后设置X、Y轴的范围后图像无法正常显示

如何才能设置X,Y轴的范围,但不会导致图像显示不全


fig,axes = plt.subplots(row,col)
ax = axes.flat
# ax.set_xlim([x_first,x_last])
# ax.set_ylim([y_first,y_last])
# ax[0].axis([x_first,y_first,x_last,y_last])
for i in range(data.shape[0]):
     im= ax[i].matshow(data[i],cmap='jet')
     ax[i].set_title((file_name[i])[4:-16])
     ax[i].xaxis.set_ticks_position('bottom')
     ax[i].set_xlim([x_first,x_last])
     ax[i].set_ylim([y_first,y_last])
     ax[i].invert_yaxis()
     # ax[i].set_autoscaley_on(True)
     # ax[i].set_xlim([x_first,x_last])
     # ax[i].set_ylim([y_first,y_last])
     # ax[i].xaxis.set_ticks([x_first,1,x_last])
     # ax[i].yaxis.set_ticks([y_first, 1, y_last])
#plt.colorbar(ax =ax.ravel().tolist())
plt.colorbar(im,ax=axes.ravel().tolist())
plt.show()

以下是设置坐标轴前后的图片

img

img

如果只是想修改坐标轴,但不修改显示范围,那么修改坐标轴刻度即可

img

使用min(x),max(x)界定上下界看 一下,y轴范围同样。图中你选取的范围太小了,所以只能显示原图中的一小部分内容。

你要根据数据的最大值最小值来设置范围啊,数据那么大你给坐标轴设置那么小,当然显示不全