我想查看Spyders IPython控制台内的matplotlib绘图在一个大小,并保存到一个不同大小的多页PDF。在
目前我设置的体形尺寸如下:
plt.rc('axes', grid=True)
plt.rc('figure', figsize=(12, 8))
plt.rc('legend', fancybox=True, framealpha=1)
然后我绘制一些图形并将它们保存到一个列表中,以便以后保存PDF。单独使用时效果很好。在Spyder IPython控制台中,这些图的大小是适当的。在
在脚本的末尾,我有一个循环来遍历我要保存的每个图形。在这里,我想设置版面和图形大小,以便更好地打印在A3纸张上。在
^{pr2}$输出PDF就像我想要的一样,但问题是Spyder内部显示的绘图。保存时更改图形大小也会影响Spyder中查看的绘图。而使用A3的尺寸会使绘图变得太大。在
所以问题是:如何在不改变Spyder内部显示的图形大小的情况下更改保存的PDF图形的大小?在
感谢@ImportanceOfBeingErnest指出解决方案。在
我使用了一个解决方案,它允许我在开始时根据自己的喜好设置
plt.rc
,然后在将图形导出为PDF后恢复为设置的值。在我使用第一个值:
有了这些,我可以用默认值绘制出我需要的东西。然后我用以下内容创建PDF:
^{pr2}$这样我就可以只在导出的图形上得到
fig.tight_layout()
,并将图形大小恢复为先前设置的默认值。在正如@ImportanceOfBeingErnest建议的那样,在保存后更改图形大小应该是可行的,并且可能会解决您的问题。在
但是,根据您的具体问题,您可能会面临缩放问题,因为保存在pdf中的图形的大小远远大于IPython控制台中显示的图形的大小。如果您将所有内容缩放为在pdf上看起来很好,那么IPython中的所有内容都可能看起来太大,如下例所示:
如果您不需要在IPython中使绘图具有交互性,一个解决方案可能是生成适合pdf的图形,并在IPython控制台中显示它们的缩放位图版本,如下面的代码所示:
在IPython控制台中显示为:
相关问题 更多 >
编程相关推荐