當使用如下代碼保存使用 plt.savefig 保存生成的圖片時,結果打開生成的圖片卻是一片空白。
import matplotlib.pyplot as plt
""" 一些作圖代碼 """
plt.show()
plt.savefig("filename.png")
原因
其實產生這個現象的原因很簡單:當調用 plt.show()
後,實際上已經創建了一個新的空白的圖片(座標軸),這個時候會覆蓋住原來plt產生的內容,這時候再 plt.savefig()
就會保存這個新生成的空白圖片。
知道了原因,就不難知道解決辦法了,解決辦法有兩種:
在 plt.show() 之前調用 plt.savefig();
import matplotlib.pyplot as plt
""" 一些作圖代碼 """
plt.savefig("filename.png")
plt.show()
畫圖的時候獲取當前圖像(這一點非常類似於 Matlab 的句柄的概念):
# gcf: Get Current Figure
fig = plt.gcf()
plt.show()
fig1.savefig('tessstttyyy.png', dpi=100)