sai*_*kon 5 python matplotlib spyder
我想以一种尺寸查看 Spyders IPython 控制台内的 matplotlib 图,并将数字保存到不同尺寸的多页 PDF 中。
目前我将图形大小设置如下:
plt.rc('axes', grid=True)
plt.rc('figure', figsize=(12, 8))
plt.rc('legend', fancybox=True, framealpha=1)
Run Code Online (Sandbox Code Playgroud)
然后我绘制一些图形并将它们保存到一个列表中,以便稍后保存 PDF。这在单独使用时效果很好。这些图的大小适合在 Spyder IPython 控制台中查看。
在我的脚本结束时,我有一个循环来遍历我想要保存的每个图形。在这里,我想准确设置布局和图形大小,以便在 A3 纸上更好地打印。
with PdfPages('multi.pdf') as pdf:
for fig in figs:
fig.tight_layout()
fig.set_size_inches(420/25.4, 297/25.4)
pdf.savefig(figure=fig)
Run Code Online (Sandbox Code Playgroud)
输出 PDF 就像我想要的那样,但问题在于 Spyder 中显示的图。保存时更改图形大小也会影响在 Spyder 中查看的绘图。使用 A3 的大小会使绘图变得太大。
所以问题是:如何在不更改 Spyder 中显示的图形大小的情况下更改保存的 PDF 图形的大小?
感谢@ImportanceOfBeingErnest 指出解决方案。
我采用了一个允许我设置的解决方案plt.rc
在开始时根据自己的喜好进行设置,然后在将数据导出为 PDF 后恢复到设置值。
首先我设置我使用的值:
plt.rc('axes', grid=True)
plt.rc('figure', figsize=(12, 8))
plt.rc('legend', fancybox=True, framealpha=1)
Run Code Online (Sandbox Code Playgroud)
有了这些,我可以仅使用默认值绘制我需要的内容。然后我使用以下命令创建 PDF:
with PdfPages('multi.pdf') as pdf:
for fig in figs:
fig.set_size_inches(420/25.4, 297/25.4)
pdf.savefig(figure=fig, bbox_inches='tight')
fig.set_size_inches(plt.rcParams.get('figure.figsize'))
Run Code Online (Sandbox Code Playgroud)
这样我就可以获得fig.tight_layout()
导出的图形的唯一值,并将图形大小恢复到之前设置的默认值。
归档时间: |
|
查看次数: |
4269 次 |
最近记录: |