close

最近需要用到 cocoapi 來做事

因此會用到 matplotlib.pyplot 來畫圖

簡單的一段程式碼(節取如下)

I = io.imread(im_path)
plt.axis('off')
plt.imshow(I)
plt.show()

執行完後沒有跑任何錯誤或警告

但也沒有顯示任何圖 0.0

後來上網查看似乎是 matplotlib 所使用的 backend 的問題

參考各種做法後我覺得最保險的方式就是將下列三行 code 放在程式碼最頂端

import matplotlib
matplotlib.use('qt5agg')
import matplotlib.pyplot as plt

其中 'qt5agg' 是 matplotlib 所使用的 backend

可視個人環境而替換掉

要查看有哪些可以替換的 backend 可以用以下程式碼:

import matplotlib.rcsetup as rcsetup
print(rcsetup.all_backends)

擷取.PNG

至於查看當前所使用的 backend 為何則可使用下列程式碼:

import matplotlib
matplotlib.get_backend()

一旦在程式最開始執行時先將 matplotlib 所使用的 backend 設定好

圖片就可以正常顯示了

 

參考資料:

1. matplotlib does not show my drawings although I call pyplot.show()

https://stackoverflow.com/questions/7534453/matplotlib-does-not-show-my-drawings-although-i-call-pyplot-show

2. Can't show images when plt.show() was executed

https://github.com/matplotlib/matplotlib/issues/6306/

arrow
arrow

    慈 發表在 痞客邦 留言(0) 人氣()