如果我在matplotlib图中添加一个副标题,它会被子图标题覆盖.有人知道如何轻松处理吗?我尝试了这个tight_layout()功能,但它只会让事情变得更糟.
例:
import numpy as np
import matplotlib.pyplot as plt
f = np.random.random(100)
g = np.random.random(100)
fig = plt.figure()
fig.suptitle('Long Suptitle', fontsize=24)
plt.subplot(121)
plt.plot(f)
plt.title('Very Long Title 1', fontsize=20)
plt.subplot(122)
plt.plot(g)
plt.title('Very Long Title 2', fontsize=20)
plt.tight_layout()
plt.show()
Run Code Online (Sandbox Code Playgroud) 目前,我正在大量使用ipython-notebook进行数值分析和数据绘制。在准备出版物质量图的过程中,需要进行很多调整以使布局正确,但是我无法通过ipython / matplotlib向我展示要在浏览器中保存的内容。使该过程比原本要痛苦的多,因为我必须继续打开新的输出文件进行检查。
有没有一种方法可以使以嵌入式方式显示的图像与保存的图像相同?
如下示例,facecolor ='gray'为清楚起见:
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
fig = plt.figure(figsize=(6,4),facecolor='gray')
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])
x = np.linspace(0,2*np.pi,1000)
y = np.sin(x)
ax.plot(x,y,label=r'$\sin(x)$')
ax.set_xlim(0,2*np.pi)
ax.set_ylim(-1.2,1.2)
ax.set_xlabel(r'$x$')
ax.set_ylabel(r'$y$')
ax.legend(loc='upper right', frameon=False)
fig.savefig('mypath.png',dpi=300, facecolor='gray')
plt.show()
Run Code Online (Sandbox Code Playgroud)
请注意,此处我已明确选择了轴尺寸,以使它们与生成的图像的两侧等距。这在保存的图像中得到尊重,但在笔记本中显示的图像中被忽略:
笔记本显示的图像:
Savefig图片: