Matplotlib:将数字保存为iPython笔记本中的文件

时间:2013-10-09 11:54:27

标签: python matplotlib ipython-notebook

我正在尝试将Matplotlib图形保存为iPython笔记本中的文件。

import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_axes([1,1,1,1])
ax.plot([1,2])

fig.savefig('test.png')

iPython笔记本中的内联视图看起来不错:

Inline view of figure in iPython notebook


文件' test.png'虽然几乎是空的。看起来情节转移到右上方,你可以看到刻度标签' 1.0'和' 0.0'在角落。

test.png

如何从iPython笔记本生成一个看起来像内联视图的文件?

2 个答案:

答案 0 :(得分:21)

问题解决了:向savefig添加'bbox_inches='tight'参数。

import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_axes([1,1,1,1])
plt.plot([1,2])

savefig('test.png', bbox_inches='tight')

我不明白这里发生了什么,但该文件现在看起来像是iPython笔记本内联文件。耶。

答案 1 :(得分:5)

实际上,savefig正常运作。当您致电add_axes时,您的列表会指定一个矩形:[left, bottom, width, height]。由于图形在两个轴上从0到1,原点位于左下角,因此从图的最右上角开始制作宽度和高度为1的矩形。你可能想做ax = fig.add_axes([0,0,1,1])

我不确定为什么内联图不会影响您放置轴的位置。如果我不得不猜测,我会说内联后端会自动计算出边界框并根据该位置放置内联图。