【问题标题】:How to save matplotlib figure in max windows form instead of default size?如何以最大窗口形式而不是默认大小保存 matplotlib 图形?
【发布时间】:2018-02-02 15:43:09
【问题描述】:

有人知道我应该如何解决这个问题吗? 我知道有保存按钮,我可以手动完成,但我正在绘制 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()

编辑: 也试过了,但我仍然能够 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中的保存图按钮手动完成的图:

编辑: How to make pylab.savefig() save image for 'maximized' window instead of default size - 这里的大部分答案是指以全窗口形式显示该图,但是在自动保存最大窗口时(它仍然以正常大小保存) ...您可以看到问题的作者在所有答案的评论部分提出了问题但没有得到回答。

【问题讨论】:

  • @Dadep 我也看到了那个线程......事情来自这个线程stackoverflow.com/a/32428266/8307740我从这里得到了方法......许多人都赞成他的解决方案,但你可以从评论中看到,其他人使用此方法遇到与我相同的问题但未得到解答。
  • 虽然作为潜在重复链接的问题实际上是相同的,但没有一个答案可以解决问题。他们只是为最初问题范围之外的其他问题提供一些解决方法或显示解决方案。因此,因为这个问题实际上是专门询问 Tk 后端的,所以它绝对应该保持开放。尽管如此,我还是建议这个问题是edited,以包括链接的问题在多大程度上没有帮助,以便让每个人都清楚问题。
  • @ImportanceOfBeingErnest 感谢您的建议。我已经编辑了它,希望我能把问题说清楚。
  • 我不知道任何解决方案,但我已经重新打开了这个问题,以便可能有人可以回答。

标签: python matplotlib


【解决方案1】:

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

请参阅 herehere

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

【讨论】:

  • 更改已添加到matplotlib==3.0.3。但是版本仍然存在最小化动画保存的问题
猜你喜欢
  • 2012-04-19
  • 1970-01-01
  • 2023-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多