以下のコードは、.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()