matplotlib 使用簡明教程(一)-基礎概念

matplotlib 使用簡明教程(一)-基礎概念

Matplotlib 是一個用於繪製圖表的 Python 庫,可以用來處理圖片、繪製統計類的圖表。
本文分爲幾篇,主要目的在於說明 Matplotlib 的一些使用方法。第一篇用於介紹 Matplotlib 的一些基本概念。

基本組成

以官網中圖片說明 Matplotlib 圖表中的基本組成成分。

這裏寫圖片描述

  • figure:整個畫布,包含一個或多個 axes
  • axes:畫布中的某一個圖表,包含一個 plot
  • artist:元素,包括圖中所示的 label、line 等,也包括 plot

backend

每一種輸出的能力都叫做一種 backend,在我的理解中有點類似渲染器。
IPython 中的魔法語句 %matplotlib xxxx 就是選擇 backend。

選用哪種 backend,其優先級選取如下:

  1. matplotlibrc 文件中的 backend
  2. 使用 MPLBACKEND 環境變量
  3. 使用 matplotlib.use() 函數,需要在導入 pyplot 前使用

backend 從種類上,分爲可交互型(user interface)和不可交互型兩種(hardcopy),如果希望查看本地支持的 backend 有哪些,可以使用

matplotlib.rcsetup.interactive_bk # 可交互型
matplotlib.rcsetup.non_interactive_bk # 不可交互型
matplotlib.rcsetup.all_backends # 所有 backend

獲取當前的 backend 可以使用 matplotlib.pyplot.get_backend()

常用 backend 已在文尾附上。

交互模式

我理解,“交互模式”即代表着這個圖標在繪製後可以動態變化,例如預設的動畫以及用戶的操作。
當開啓交互模式後,繪製的圖表會自動更新、繪製,如果希望手動更新圖表,則使用 draw() 函數;而在非交互模式下,當所有後臺繪製完成後,需要使用 show() 函數,纔會將最終圖表展示出來。

如果希望使用交互模式,需要選用可交互型的 backend。

  • 通過 matplotlib.interactive() 設置交互模式的開啓與關閉
  • 通過 matplotlib.is_interactive() 查詢當前實發支持交互模式
  • 也可以通過 matplotlib.pyplot.ion()matplotlib.pyplot.ioff() 來開啓/關閉交互模式

附:常用 backend

  • 不可交互型
    • AGG:渲染爲 png 文件
    • PS:渲染爲 ps 文件
    • PDF:渲染爲 pdf 文件
    • SVG:渲染爲 svg 文件
    • Cairo:使用 Cairo 引擎渲染
  • 可交互型
    • Qt5Agg:使用 Qt5 渲染,IPython 中可使用 %matplotlib qt5
    • Qt4Agg:使用 Qt4 渲染,IPython 中可使用 %matplotlib qt4
    • ipympl:使用 ipympl 庫,Ipython 中可使用 %matplotlib ipympl
    • macosx:使用 Cocoa 畫布渲染,Ipython 中可使用 %matplotlib osx
    • nbAgg:Jupyter Notebook 中使用的 backend,Jupyter 中使用 %matplotlib notebook 來激活
    • WXAgg:使用 wxWidgets 庫來渲染,Ipython 中可使用 %matplotlib wx
    • inline:嚴格地講並不是一個 backend,這個 IPython 中的一個語法,表示把圖表嵌入筆記中,使用 %matplotlib inline

系列文章:

matplotlib 使用簡明教程(一)-基礎概念:
https://blog.csdn.net/fenghuizhidao/article/details/79352882
matplotlib 使用簡明教程(二)-常用圖表
https://blog.csdn.net/fenghuizhidao/article/details/83090043
matplotlib 使用簡明教程(三)-一些專業圖表簡介
https://blog.csdn.net/fenghuizhidao/article/details/83090165
matplotlib 使用簡明教程(四)-輔助性元件
https://blog.csdn.net/fenghuizhidao/article/details/83090249
matplotlib 使用簡明教程(五)-畫布、圖表、元素基礎操作
https://blog.csdn.net/fenghuizhidao/article/details/83090320
matplotlib 使用簡明教程(六)-圖像、動畫相關
https://blog.csdn.net/fenghuizhidao/article/details/83090512
matplotlib 使用簡明教程(七)-樣式定義
https://blog.csdn.net/fenghuizhidao/article/details/83090553

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章