Nat*_*iel 3 python axes matplotlib axis-labels
我正在准备一些科学论文的图表,这些图片需要宽而短,才能符合页面限制.但是,当我将它们保存为pdf时,缺少x轴标签,因为(我认为)它们位于边界框之外.
将以下内容放入iPython笔记本中可以重现该问题.
%pylab inline
pylab.rcParams['figure.figsize'] = (8.0, 2.0)
plot([1,5,2,4,6,2,1])
xlabel("$x$")
ylabel("$y$")
savefig("test.pdf")
Run Code Online (Sandbox Code Playgroud)
生成的pdf文件如下所示:
如何更改pdf文件的边界框?理想情况下,我想要一个"做得恰到好处"的解决方案,即自动调整大小,使一切都整齐,包括摆脱左右不必要的空间 - 但我很匆忙,所以我会以任何方式改变边界框,我会猜测数字,直到它看起来正确,如果我必须.
谷歌搜索的点之后,我找到了答案:你可以给bbox_inches='tight'
的savefig
命令,它会自动调整边界框的内容的大小:
%pylab inline
pylab.rcParams['figure.figsize'] = (8.0, 2.0)
plot([1,5,2,4,6,2,1])
xlabel("$x$")
ylabel("$y$")
savefig("test.pdf",bbox_inches='tight')
Run Code Online (Sandbox Code Playgroud)
我想这些是一些紧密的英寸.
请注意,这与Ffisegydd的答案略有不同,因为它将边界框调整为绘图,而不是更改绘图以适合边界框.(但两者都适合我的目的.)
您可以使用plt.tight_layout()
matplotlib 调整绘图的布局。tight_layout()
将自动调整尺寸,并且当您有(例如)重叠标签/刻度/等时也可以使用。
%pylab inline
pylab.rcParams['figure.figsize'] = (8.0, 2.0)
plot([1,5,2,4,6,2,1])
xlabel("$x$")
ylabel("$y$")
tight_layout()
savefig("test.pdf")
Run Code Online (Sandbox Code Playgroud)
这是输出的 .png(无法将 pdf 上传到 SO,但我已经检查过,它的工作方式与 pdf 相同)。
归档时间: |
|
查看次数: |
5226 次 |
最近记录: |