最近需要用到 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)
至於查看當前所使用的 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/
留言列表