使用add_axes保存matplotlib图

时间:2014-07-09 12:41:00

标签: python matplotlib save ipython-notebook axes

我正在尝试在顶部保存带有额外图像的图形。 但是Python只能保存底部数字。 我有:

fig = plt.figure(figsize=(8, 6))
ax = fig.add_subplot(111)

ax.plot(...)
...

ax_im = fig.add_axes([0.1, 1.0, 1, 1])
ax_im.set_xticks([])
ax_im.set_yticks([])

ax.imshow(...)
...

fig.savefig('image.png')

和Matplotlib仅保存与ax轴相关的数字。在iPython笔记本中 输出很好,它显示了两个数字,所以,我不知道发生了什么。

1 个答案:

答案 0 :(得分:1)

尝试这样的事情

ax_im = fig.add_axes([0.1, 0.2, 0.5, 0.5], label='axes1')

解释是你的add_axes的第二个参数是1.0。这指定了图的顶部Axes的底部。

以下示例适用于我:

import pylab as plt

fig = plt.figure(figsize=(8, 6))
ax = fig.add_subplot(212)

ax.plot(range(3))

ax_im = fig.add_axes([0.3, 0.5, 0.5, 0.4])
ax_im.set_xticks([])
ax_im.set_yticks([])

plt.show()

甚至更容易,使用add_subplot两次:

import pylab as plt

fig = plt.figure(figsize=(8, 6))
ax = fig.add_subplot(212)

ax.plot(range(3))

ax_im = fig.add_subplot(211)
ax_im.plot(range(3), 'o--')
ax_im.set_xticks([])
ax_im.set_yticks([])

plt.show()