Matplotlib: Max OSX系統上pyplot.show()無法顯示圖片問題分析
問題描述
環境配置:系統執行Max OSX 10.14.1版本,Anaconda的Python版本為3.6.5,控制檯使用的iTerm2。
需要用matplotlib繪製披薩尺寸與價格關係圖片,程式碼非常簡單:
import matplotlib
import matplotlib.pyplot as plt
x = [[6], [8], [10], [14], [18]]
y = [[7], [9], [13], [17.5], [18]]
plt.figure()
plt.title('Pizza price plotted against diameter')
plt.xlabel('Diameter in inches')
plt.ylabel('Price in dollars')
plt.plot(x, y, 'k.')
plt.axis([0, 25, 0, 25])
plt.grid(True)
plt.show()
通過執行下面的程式碼,應該可以繪製出下列的關於披薩尺寸與價格的關係圖:
在iTerm2終端上執行該指令碼時,發現上述圖框並沒有繪製出來。
問題排查
經過一番排查後發現,使用matplotlib的get_backend()函式獲取iTerm2終端上使用的backend後端為MacOSX,是否該後端有什麼特殊之處呢?為做對比,將後端更換為TkAgg,相應的模組匯入程式碼修改如下:
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
更換後端後,繪圖功能變能正常繪製了。這裡需要提醒一點的是,更換後端的命令必須在匯入pylot模組之前使用方能生效。
macosx後端本身是支援GUI繪製的,導致這個問題的根本原因是什麼呢?作者的習慣是一定要挖到root cause,並給出一個比較make sense的解釋。最終在官網上,找到了https://matplotlib.org/faq/usage_faq.html關於maxosx後端的描述:
從對maxosx後端描述上看,在非互動模式下,現在不能夠阻止show()。這就是根本原因啊。換成了系統自帶的互動模式的終端,發現這個問題並不存在。
相關文章
- 成功解決github無法顯示圖片問題Github
- mac php 圖片驗證碼無法顯示問題MacPHP
- 【轉】釋出的QT程式無法顯示圖示和圖片的問題QT
- img圖片無法顯示利用onerror事件顯示替代圖片Error事件
- Win10系統搜狗瀏覽器無法顯示圖片如何解決Win10瀏覽器
- IOS下圖片不能顯示問題的解決辦法iOS
- 解決本地筆記匯入部落格中圖片無法顯示的問題筆記
- 修復Win7系統Aero特效無法顯示的問題Win7特效
- 資料庫顯示圖片的問題資料庫
- SDWebImage在iOS12上WebP格式圖片不顯示問題WebiOS
- 解決RAW在SQLPLUS上無法顯示的問題SQL
- PicGo無法刪除雲端圖片問題PicGo
- opencv圖片上如何顯示兩個小圖片OpenCV
- CAD 有些字型無法顯示的問題
- Win10系統無法上網顯示無internet訪問許可權如何解決Win10訪問許可權
- iOS 深入分析大圖顯示問題iOS
- win10系統mpg無法顯示縮圖解決方法Win10圖解
- linux系統lcd顯示jpg格式圖片Linux
- Swift UIButton 圖片 文字 同時顯示 不顯示,細節問題SwiftUI
- Windows10系統開啟cortana後圖示無法顯示如何解決Windows
- 重灌win7系統顯示:無法安裝在gpt硬碟上Win7GPT硬碟
- 關於Win7系統,縮圖無法顯示的解決辦法Win7
- git(osx)上的一個git commit無法正確提交的問題GitMIT
- win10 office圖示無法顯示怎麼辦 w10系統office圖示顯示不出來處理方法Win10
- 網頁圖片不能顯示 網頁圖片顯示不出來的解決辦法網頁
- WIN10網站圖片顯示不了怎麼辦 win10網站圖片無法顯示恢復方法Win10網站
- HTML img 元素無法顯示 base64 圖片的可能原因HTML
- 更改系統路由解決無法上網的問題路由
- 解決WordPress文章上傳圖片使用中文名不顯示的問題
- 解決windows8無法全屏顯示的問題Windows
- Windows pyinstaller wxPython pyecharts無法正常顯示問題WindowsPythonEcharts
- win7系統縮圖無法顯示了,要怎麼辦呢?Win7
- 伺服器上訪問正常顯示網頁,遠端的時候“無法顯示”伺服器網頁
- Mac OS X 系統 Finder 中直接顯示圖片尺寸Mac
- Windows10系統桌面圖片怎麼顯示為縮圖Windows
- 使用"mews/captcha:~2.0" 驗證碼圖片不顯示問題APT
- 【菜鳥學安卓】- TextView 顯示Html 一 解決圖片顯示不了的小問題安卓TextViewHTML
- 安卓圖片顯示與網路訪問安卓