我以前可以用来创建2d图
x=np.linspace(0,1,5)
y=np.linspace(1,100,5)
img=np.ones([len(x),len(y)])*500
plt.imshow(img,extent=(x[0], x[-1], y[-1], y[0]))
plt.axes().set_aspect(0.06)
plt.clim(0,500)
plt.show()现在,set aspect给了我一个空白图像(和这里一样:https://cloudstack.ninja/xotix/plt-axes-set_aspectequal-destroys-plot-by-adding-a-lot-of-white-space/)
如果我试着用斧头。绘图样式,我不能再使用plt.clim(0,500):
ax = fig.add_subplot(111)
ax.imshow(img,extent=(x[0], x[-1], y[-1], y[0]))
### ax.set_clim(0,500) # not a function
ax.set_xlabel('$t$ [ns]')
ax.set_ylabel('$\lambda$ [nm]')
ax.set_aspect(0.06)
ax.set_xlim(5,11)
ax.set_ylim(351,290)
fig.show()这里有没有set_clim的替代品?我一直在找,但什么也找不到。谢谢。
发布于 2021-08-21 12:31:52
在调用imshow时,您可以将clim作为kwarg,例如:
im = ax.imshow(img,extent=(x[0], x[-1], y[-1], y[0]), clim=(0, 500))或者,如果您在一个变量中捕获由imshow返回的AxesImage (这里我称之为im),您可以稍后使用im.set_clim()在其上设置clim。
im = ax.imshow(img,extent=(x[0], x[-1], y[-1], y[0]))
im.set_clim(0, 500)而且,正如@Jody Klymak在评论中指出的,你的第一个选择不起作用的原因是因为plt.axes()创建了一个新的Axes实例。你可以就地使用plt.gca().set_aspect(0.06)。
https://stackoverflow.com/questions/68868564
复制相似问题