我有一个Matplotlib图,有三个轴,一个放在另一个上面。在顶部的axes
对象上方,我想放置一个图像,我把它放在一个inset_axes()
'盒子'中。图像应该和axes
对象一样宽(与其原始比例相比,其高度应相应缩放),并且它应该无缝连接到axes
对象的顶部(因此图像的底部和axes
对象的顶部之间没有空白)。像这样(黑色框是axes
对象;红色框是图像):
x1c 0d1x的数据
这是我到目前为止的代码:
fig, axes = plt.subplots(nrows=3, ncols=1, sharex=True)
for i, ax in enumerate(axes):
if i == 0:
img = Image.open(os.path.join(MY_DIR, img_name), formats=["png"]
axin = ax.inset_axes([0.0, ???, 1.0, 1.0])
axin.imshow(img, alpha=1)
axin.axis("off")
字符串
根据documentation,inset_axes()
的bounds
参数需要四个值:“Inset Axes的左下角,以及它的宽度和高度”。我发现我可以使用1.0作为宽度和高度,这使得图像与axes
一样宽,保持其比例。x坐标也很明显:它应该是0,这样图像的左边就和x轴的起点对齐了,但是我不知道y坐标应该是多少。
如果将y
设置为0,则图像将沿axes
对象的y轴垂直沿着:
的
如果我将它设置为0.5,那么它的中间与y轴的顶部对齐。仍然不是我想要的:
的
我怎么才能得到我想要的结果呢?我不能让它有意义。有没有一种方法可以告诉matplotlib图像的底部应该与axes
的顶部对齐?
(我应该提到,我问了一个非常类似的问题here,但这似乎是一个死胡同。
1条答案
按热度按时间9udxz4iz1#
将
y
设置为1,因为这是轴的顶部。然后将插入轴的anchor
设置为“S”(表示南),这样,一旦调整插入轴的大小以考虑纵横比,它仍然附着在主轴的顶部。字符串
的数据