1. 程式人生 > >【Python】解決使用 plt.savefig 儲存圖片時一片空白

【Python】解決使用 plt.savefig 儲存圖片時一片空白

更新

這裡我會列出對本文的更新。

  • 2017 年 9 月 28 日:修正幾處錯字,優化排版。

問題

當使用如下程式碼儲存使用 plt.savefig 儲存生成的圖片時,結果開啟生成的圖片卻是一片空白。

import matplotlib.pyplot as plt

""" 一些畫圖程式碼 """

plt.show()
plt.savefig("filename.png")

原因

其實產生這個現象的原因很簡單:在 plt.show() 後呼叫了 plt.savefig() ,在 plt.show() 後實際上已經建立了一個新的空白的圖片(座標軸),這時候你再 plt.savefig()

就會儲存這個新生成的空白圖片。

解決

知道了原因,就不難知道解決辦法了,解決辦法有兩種:

  1. plt.show() 之前呼叫 plt.savefig()

    import matplotlib.pyplot as plt
    
    """ 一些畫圖程式碼 """
    
    plt.savefig("filename.png")
    plt.show()
  2. 畫圖的時候獲取當前影象(這一點非常類似於 Matlab 的控制代碼的概念):

    # gcf: Get Current Figure
    fig = plt.gcf()
    plt.show()
    fig1.savefig('tessstttyyy.png'
, dpi=100)

END