使用 imshow 进行轴定位 - python
axis positioning with imshow - python
我一直在尝试在同一个图形上添加两个轴,位置非常具体。问题是当我添加绘图时,它们的大小似乎与我指定的不同。
这是一个例子
fig = plt.figure()
ax = fig.add_axes([0.0, 0.3, 0.7, 0.7])
M = np.random.random([10, 20])
ax.imshow(M)
plt.show()
这是结果
但是,当我改用 ax.plot()
时,它似乎将轴放置在正确的位置。
我的感觉是它与 imshow()
中的纵横比有关,但到目前为止对我没有任何作用。有什么建议么?提前致谢
你是对的;默认情况下设置为 "equal" 的 imshow
方面会阻止轴自动缩放到指定的位置。不过通常这是需要的,因为您需要在 imshow 图中使用方形像素。
要将纵横比设置为自动,请使用
ax.imshow(M, aspect="auto")
我一直在尝试在同一个图形上添加两个轴,位置非常具体。问题是当我添加绘图时,它们的大小似乎与我指定的不同。
这是一个例子
fig = plt.figure()
ax = fig.add_axes([0.0, 0.3, 0.7, 0.7])
M = np.random.random([10, 20])
ax.imshow(M)
plt.show()
这是结果
但是,当我改用 ax.plot()
时,它似乎将轴放置在正确的位置。
我的感觉是它与 imshow()
中的纵横比有关,但到目前为止对我没有任何作用。有什么建议么?提前致谢
你是对的;默认情况下设置为 "equal" 的 imshow
方面会阻止轴自动缩放到指定的位置。不过通常这是需要的,因为您需要在 imshow 图中使用方形像素。
要将纵横比设置为自动,请使用
ax.imshow(M, aspect="auto")