如何将matplotlib图形保存为最大窗口大小而不是默认大小?

5

有人知道我应该如何解决这个问题吗?我知道有一个保存按钮,我可以手动保存,但是我正在绘制100多个图表,所以希望有一种自动保存的方法。

我正在使用'TkAgg'后端,并寻找任何可能的解决方案。通过在我的绘图函数末尾使用以下内容。

manager = plt.get_current_fig_manager() 
manager.resize(*manager.window.maxsize()) 
plt.savefig(r'C:\Users\310293649\Desktop\PlotFigure\TESTING.png')
plt.show()

编辑:我也尝试过这种方法,但仍然能够以我喜欢的全屏大小显示图像,但它仍会自动以默认形式保存所有的图像。

wm = plt.get_current_fig_manager()
wm.window.state('zoomed')
plt.savefig(r'C:\Users\310293649\Desktop\PlotFigure\TESTING.png')
plt.show()

以下是我从上面命令的plt.show()中得到的结果, 我的图形全屏模式 我得到的plt.savefig结果: 输入图像描述 正如您所看到的,代码已经成功显示了最大窗口大小的绘图,但它仍然以默认大小自动保存了绘图,所以我想知道是否有可能或是否有任何解决方案可以自动将matplotlib图形保存为最大窗口大小?或者我无法做到这一点吗?
下面的图片是我手动使用matplotlib的保存图形按钮时得到的结果:

enter image description here

编辑: 如何使pylab.savefig()保存 '最大化' 窗口的图像,而不是默认大小 - 这里的大多数回答都是关于在全屏窗体中显示图形,但当它自动保存最大窗口时(仍然以正常尺寸保存)...你可以看到问题的提出者在所有答案的评论部分提出了这个问题,但没有得到回答。


@Dadep 我也看到了那个帖子...事实上,我从这个帖子 https://dev59.com/r1wY5IYBdhLWcg3wnYx3#32428266 中得到了方法...很多人赞同他的解决方案,但你可以从评论中看到,有人使用这种方法遇到了与我相同的问题,但没有得到答复。 - SacreD
1
虽然被链接为潜在重复问题的那个实际上是相同的,但那里的回答都没有解决问题。它们只提供了一些变通方法或展示了超出初始问题范围的其他问题的解决方案。因此,由于这个问题实际上是特别询问Tk后端的,它应该继续保持开放状态。尽管如此,我仍然建议对这个问题进行[编辑],以包括链接问题在多大程度上没有帮助,让问题清晰地呈现给每个人。 - ImportanceOfBeingErnest
@ImportanceOfBeingErnest 感谢您的建议。我已经编辑过了,希望我已经把问题表述清楚了。 - SacreD
我不知道任何解决方案,但我已经重新打开了这个问题,以便有人可以回答它。 - ImportanceOfBeingErnest
1个回答

0

显然,这是Matplotlib 2.0(2017年1月)引入的一个错误。

请参见此处此处

似乎有一个相当简单的代码更改可以修复此处,但由于它尚未包含在任何发布版本中(计划在2.1.1 2.2中),您必须自己应用它。


更改已添加在 matplotlib==3.0.3 中。但是该版本仍存在动画保存最小化的问题。 - twitu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接