Matplotlib show() 和 savefig() 不一致

问题描述

当使用 .savefig() 和 .show() 时,下面的代码应该显示相同的图像(绿色背景),但 savefig 图像是空白的。我知道 .show() 清除数字,但我在 .savefig() 之后调用它,所以这里不是这种情况。 plt.savefig() 和 fig.savefig() 生成相同的空白图像。

代码(我使用的是 Python 3.6.8):

from matplotlib import pyplot as plt

def test(dpi=100):
    fig = plt.figure(figsize=(12.8,7.2),dpi=dpi)
    fig.patch.set_facecolor('#a8bc95')
    plt.savefig("test.png")
    plt.show()

test()

.show()

.savefig()

解决方法

更新 matplotlib 版本修复了问题。