matplotlib算是歷史悠久的python可視化庫(kù)了,2003年就發(fā)布了 v0.10 版本,現(xiàn)在已經(jīng)到了 v3.x 版本了。
?
成都創(chuàng)新互聯(lián)主營(yíng)酒泉網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,app軟件開發(fā)公司,酒泉h5微信小程序定制開發(fā)搭建,酒泉網(wǎng)站營(yíng)銷推廣歡迎酒泉等地區(qū)企業(yè)咨詢
代碼和功能雖然有翻天覆地改變,但由于其歷史悠久,功能強(qiáng)大,用戶基數(shù)龐大,所以,我們?cè)谑褂?matplotlib 庫(kù)的時(shí)候,幾乎可以搜索到我們需要的各種示例。
?
我之前的做的一些數(shù)據(jù)分析結(jié)果的展示項(xiàng)目,沒有去研究 matplotlib 的文檔,只是看看接口和示例,也能寫出各種分析結(jié)果的展示。
?
但是,系統(tǒng)地去了解下 matplotlib 庫(kù)還是有必要的,一方面了解之后可以寫出更高效的代碼,另一方面,對(duì)各種示例能做到知其然也知其所以然,更高效的對(duì)示例做一些微調(diào)。
?
下面都是 matplotlib 庫(kù)中一些基本元素的術(shù)語(yǔ),直接用的英文,沒有翻譯,這樣方便和庫(kù)的API對(duì)應(yīng)上(庫(kù)中的API函數(shù)也是使用這些英文名稱)。
matplotlib 中重要的基礎(chǔ)元素主要有5種:
?
這5個(gè)元素的概念不是互相獨(dú)立的,比如 Axis 可以看做是一種 Spines,而Figure,Axes和Axis都可以看成是 Artist。
Artist 是很通用的概念,幾乎任何需要繪制的元素都可以當(dāng)成是 Artist,但是一個(gè) Artist 只能存在于一個(gè) Axes 之上。
?
圖元可以看作是可編輯的 Artist,包括:
?
通過下圖可以看到 Figure 上顯示的各類圖元:
matplotlib 的圖形繪制引擎也是可以設(shè)置的,根據(jù)顯示的要求選擇柵格圖或者矢量圖。
Renderer | Type | FileType |
---|---|---|
Agg | 柵格圖 | png |
PS | 矢量圖 | Postscript(PS) |
矢量圖 | ||
SVG | 矢量圖 | svg |
Cairo | 柵格圖/矢量圖 | png/pdf/svg |
這些 renderers 可以圖形接口(UI)對(duì)接
Interface | Renderer | Dependencies |
---|---|---|
GTK3 | Agg/Cairo | PyGObject & Pycairo |
QT4 | Agg | PyQt4 |
QT5 | Agg | PyQt5 |
Tk | Agg | TkInter |
Wx | Agg | wxPython |
Web | Agg | Browser |
matplotlib 的尺寸的單位是(inch),可以在初始化指定,也可以在隨后的代碼中指定。
比如:
plt.figure(figsize=(6, 6)) # 生成的圖像是 6英寸 * 6英寸的
這里的單位是英寸,不是像素。如何要生成指定像素的圖像,還需要指定清晰度,也就是dpi(dots per inch)。
比如:
plt.figure(figsize=(6, 6), dpi=100) # 生成 600*600 像素的圖像
plt.figure(figsize=(5.12, 5.12), dpi=100) # 生成 512*512 像素的圖像
也就是說,像素由圖形大小乘以其清晰度來決定的,figsize控制圖像的大小,dpi控制圖像的清晰度。
對(duì) matplotlib 中的基礎(chǔ)元素和概念的了解有助于理解它的文檔中各類API的劃分依據(jù),繪制復(fù)雜圖像的時(shí)候,能夠更合理的規(guī)劃顯示區(qū)域和繪制順序。