【问题标题】:How to save a pyplot figure in its maximized state如何将 pyplot 图形保存为最大化状态
【发布时间】:2021-04-27 16:56:51
【问题描述】:

我正在尝试以最大化的形式保存 pyplot 图形,正如我调用 plt.show() 时显示的那样,因为最大化图形可以正确显示数据,而当前正在保存的较小的“窗口”版本的图形有数据移位/格式不正确。

当前代码:

mng = plt.get_current_fig_manager()
mng.window.showMaximized()
plt.savefig(path + '.png', dpi=fig.dpi)
plt.show()

我使用 current_fig_manager 强制 plot.show() 以它正确执行的最大化状态显示,但 plt.savefig() 仍然以较小的格式保存无花果。

我正在寻找方法以英寸为单位获取 mng.window.showMaximized() 的尺寸,然后将其插入 savefig() 但想知道是否有更好的方法?

【问题讨论】:

    标签: python matplotlib plot resolution


    【解决方案1】:

    在使用plt.figure(figsize=(width, height)) 开始代码之前尝试配置图形大小。看下面的例子:

    plt.figure(figsize=(10,6)) #10,6 is the figure dimensions
    plt.plot(...)
    ...
    plt.savefig(...)
    

    这样做 savefig 函数将使用定义的尺寸。

    【讨论】:

    • 这个答案没有直接帮助,因为即使按照上面的代码它也没有最大化保存。但是它让我想到了弄乱 figsize 的想法,我在这里找到了解决方案:stackoverflow.com/a/4306340/14650757 谢谢 :)
    • 你能解释一下你从哪里得到尺寸(10、6)吗?
    • 我以尺寸 (10,6) 为例。 savefig 函数所做的是保存您的图形,而不是 plt.show 结果,然后当您设置所需的尺寸时 savefig 使用它来创建输出文件。希望对您有所帮助!
    【解决方案2】:

    解决方案是创建一个图形并在那里以英寸为单位设置大小,然后保存图形而不是绘图。

    fig = matplotlib.pyplot.gcf()
    fig.set_size_inches(18.5, 10.5)
    fig.savefig('test2png.png', dpi=100)
    

    【讨论】:

      猜你喜欢
      • 2016-07-24
      • 1970-01-01
      • 2016-06-16
      • 1970-01-01
      • 2012-09-28
      • 1970-01-01
      • 2014-11-23
      • 2018-06-08
      • 1970-01-01
      相关资源
      最近更新 更多