- backend
- matplotlib的互動和非互動模式
- 互動模式
- 非互動模式
backend
參考matplotlib官網matplotlib.org
backend是為matplotlib中的繪圖功能做幕後工作的,對應的’frontend’指的就是你編輯的繪圖指令。通過設定’backend’可以使得matplotlib适應不同的應用場景,或者說輸出形式,例如:python中的指令行模式下彈出的figure,圖形界面的工具wxpython中嵌入的matplotlib,網頁應用服務,批處理腳本生成可視化資料等。
backend可以分為兩類:互動式的,包括指令行以及圖形界面的內建開發環境;輸出圖檔檔案(格式為PNG,JPG,PDF等)的。
backend的設定有四種方法,在此我隻總結官方建議的兩種(後者優先級高):
1. 通過修改matplotlibrc檔案(沒有字尾)内容,matplotlibrc可能存放的位置有三個:
a. ~/.config/matplotlib/matplotlibrc
b. /usr/local/lib/python2.7/site-packages/matplotlib/mpl-data/matplotlibrc
c. path-of-working
你可以通過’locate’指令來查找,目前工作路徑中的matplotlib優先級最高。
要在python中檢視目前是哪個檔案在支配設定,可以在python指令行模式下輸入以下指令:
>>> import matplotlib
>>> matplotlib.matplotlib_fname()
就可以看到了。
2. 通過在python檔案中定義,例如PS模式的設定:
>>>import matplotlib
>>>matplotlib.use('PS') # generate postscript output by default
注意兩點,一是backend的參數不區分大小寫,例如’TkAgg’等同于’tkagg’,另一點是通常情況matplotlib安裝完成後的設定是可以提供各種應用場景的,是最優的,一般情況不需要更改,除非是圖形化內建開發環境的開發者或者網絡應用伺服器的開發者。(PS:我就是看了一個包的README,然後改了backend設定,然後就不能正常導入pylab了,還好我的matplotlibrc有備份,查到了問題又改回來了)。
matplotlib的互動和非互動模式
互動模式
開啟互動模式的方式是:
>>> import matplotlib.pyplot as plt
>>> plt.ion()
互動模式中任何繪圖動作都會直接立即展現在輸出中,在python或ipython的指令行模式下,指令行互動不受影響。
非互動模式
關閉互動模式的方法是:
>>> import matplotlib.pyplot as plt
>>> plt.ioff()
非互動模式在’show()’動作前輸出是不會有任何變化的,如果要重新整理輸出,那麼進行’show()’動作,但是此時指令行會被‘冰凍’,無法繼續互動,除非手動殺掉輸出視窗。但是這樣可以防止輸出的過度頻繁重新整理。