我正在制作一个嵌入到乳胶中的出版质量图,我希望在大小和字体方面非常精确(以便文章中的字体与图中的字体大小相同)。为了防止绘图在乳胶中缩放,我希望它具有精确的大小,但我不能。这是我的代码:
import matplotlib.pyplot as plt
from matplotlib import rc, rcParams
from numpy import sin
rc('text', usetex=True)
rc('font', family='serif', serif='Computer Modern Roman', size=8)
rc('legend', fontsize=10)
width_in = 5
fig = plt.figure(1, figsize=(width_in, 2))
ax = fig.add_subplot(111)
ax.plot(range(0,100), sin(range(0,100)))
fig.tight_layout()
fig.savefig('test.eps', bbox_inches='tight', pad_inches=0)
plt.close()
问题在于 bbox_inches='tight' 和 pad_inches=0。添加这些选项使我的地块宽 4.76 英寸,而不是声明的 5 英寸。但我希望他们节省空间。那么如何解决呢?
编辑:嗯,答案建议删除bbox_inches='tight'
和pad_inches=0
使用tight_layout()
. 然后图像大小合适,但周围仍有一些白色填充。我可以用 删除它fig.tight_layout(pad=0)
,但是它移动到框内的图形标题看起来很难看。另一方面,我可以使用tight_layout(rect=[...])
并获得所需的结果,但要获得正确的数字是一项手动工作 - 我不喜欢它。因此,目前我没有看到任何简单而通用的解决方案来解决我的问题。