我正在尝试将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笔记本中的内联视图看起来很好:
文件'test.png‘几乎是空的。它看起来像是图移到了右上角,你可以在角落里看到刻度标签'1.0‘和'0.0’。
如何从iPython笔记本生成一个看起来像内联视图的文件?
发布于 2013-10-09 20:41:50
问题已解决:在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笔记本内联文件。耶。
发布于 2013-10-09 23:22:26
实际上,savefig
工作正常。当您调用add_axes
时,您的列表指定了一个矩形:[left, bottom, width, height]
。由于图形在两个轴上从0到1,原点在左下角,因此您将从图形的最右上角开始制作一个宽度和高度均为1的矩形。你可能想要做ax = fig.add_axes([0,0,1,1])
。
我不确定为什么内联图不考虑轴的放置位置。如果我必须猜测,我会说内联后端自动计算出边界框并根据它放置内联图形。
https://stackoverflow.com/questions/19271309
复制相似问题