从ipython笔记本保存绘图会生成剪切图像

从ipython笔记本保存绘图会生成剪切图像,python,matplotlib,ipython,ipython-notebook,Python,Matplotlib,Ipython,Ipython Notebook,我正在用ipython笔记本绘制一个2个1Label的绘图,当在笔记本中可视化时,图像看起来很好 我是这样做的: import matplotlib.pyplot as plt fig, ax1 = plt.subplots() plt.title('TITLE') plt.xlabel('X') plt.plot(x, y1, '-', color='blue', label='SNR') ax1.set_ylabel('y1', color='blue') for tl in ax1.

我正在用ipython笔记本绘制一个2个1Label的绘图,当在笔记本中可视化时,图像看起来很好

我是这样做的:

import matplotlib.pyplot as plt 

fig, ax1 = plt.subplots()
plt.title('TITLE')
plt.xlabel('X')

plt.plot(x, y1, '-', color='blue', label='SNR')
ax1.set_ylabel('y1', color='blue')
for tl in ax1.get_yticklabels():
    tl.set_color('blue')

ax2 = ax1.twinx()
plt.plot(x, y2, '--', color='red', label='Ngal')
ax2.set_ylabel('y2', color='red')
for tl in ax2.get_yticklabels():
    tl.set_color('red')
问题是当我试图用命令保存它时

plt.savefig('output.png', dpi=300)

由于输出将是右侧剪切的图像:基本上,如果正确的数字较大,我看不到正确的y标签。

默认情况下,matplotlib为x轴和y轴标签和记号标签留出的空间非常小,因此需要调整图形以包含更多的填充。幸运的是,要做到这一点并不容易。在调用savefig之前,您可以调用

fig.tight_layout()
plt.savefig('output.png', dpi=300)
或者,您可以将bbox_inches='tight'传递给savefig,savefig还将调整图形以包括所有x和y标签

plt.savefig('output.png', dpi=300, bbox_inches='tight')
在执行
savefig
命令之前,尝试
fig.tight_layout()