fig.add_axes使用的坐标系

时间:2017-11-20 15:50:44

标签: python matplotlib

考虑以下玩具示例:

import numpy as np
d = np.random.rand(160,100)

import matplotlib.pyplot as plt
fig, ax = plt.subplots()

ax.axis('off')
ax.set_xticklabels([]);
ax.set_yticklabels([]);

ax.imshow(d)

fig.add_axes([0, 0, 0.1, 0.5])

plt.show()

What it looks like

如果我删除fig.add_axes,则它看起来像这样:

What it looks like without a second axes

我不理解fig.add_axes中使用的坐标系。我期望(0,0)位于第二张图片的左下角,并且坐标在第二张图片的宽度和高度上从0到1运行。我错过了什么?

请解释本例中坐标系的工作原理,以及如何相对于图像定位轴。最终目标是将颜色条放在图像顶部,下方或右侧。

1 个答案:

答案 0 :(得分:2)

你似乎是在一个jupyter笔记本中运行它。这是一条重要的信息。如果您尝试将代码作为脚本运行,您将看到预期的输出。此外,当您将图形保存为笔记本内部的png时,输出也是预期的。因此,您也没有做错任何事情,并且坐标的解释是正确的。

您唯一需要记住的是,jupyter中的pngs在内部保存了bbox_inches="tight"选项,该选项会将数字裁剪或扩展为其内容。如果只有一半的图形填充了图像,则所示图形将被裁剪为原始图形尺寸的一半。

enter image description here