1. 程式人生 > >matplotlib畫圖時儲存圖片空白的問題,

matplotlib畫圖時儲存圖片空白的問題,

如何解決畫圖的問題,寫論文需要eps,匯入latex,結果預覽結果為空表,後來發現是下面的情況導致:

jupyter notebook在一行儲存不會有空白

plt.plot(x, np.sin(x))
plt.savefig('figures/02.03-sine.png')
  • 1
  • 2

分兩行執行,則出現儲存的空白。

plt.show()
plt.savefig("filename.png")
  • 1
  • 2

其實產生這個現象的原因很簡單:在plt.show() 後呼叫了plt.savefig() ,在plt.show() 後實際上已經建立了一個新的空白的圖片(座標軸),這時候你再plt.savefig() 就會儲存這個新生成的空白圖片。 
知道了原因,就不難知道解決辦法了,解決辦法有兩種:

一、 在plt.show() 之前呼叫plt.savefig();

plt.savefig("filename.png")
plt.show()
  • 1
  • 2

二、 畫圖的時候獲取當前影象(這一點非常類似於Matlab的控制代碼的概念):

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