Matplotlib——初級

matplotlib是一個專門用來繪圖的庫,在分析數據的時候,使用它能夠將數據進行可視化,更直觀的呈現。下面是幾個經過matplot繪製的圖。函數

經過圖形的繪製,咱們能夠很清晰地看到數據直接的關係,並對這些關係進行分析,若是是傳統的一行行數據,在咱們分析時是很不直觀的。工具

Matplotlib圖像結構

其餘說明:字體

  1.  一個figure(畫布)能夠包含多個axes(座標系/繪圖區),可是一個axes只能屬於一個figure。
  2. 一個axes(座標系/繪圖區)能夠包含多個axis(座標軸),包含兩個即爲2d座標系,3個即爲3d座標系 
  3.  輔助顯示層爲Axes(繪圖區)內的除了根據數據繪製出的圖像之外的內容,主要包括Axes外觀(facecolor)、邊框線(spines)、座標軸(axis)、座標軸名稱(axis label)、座標軸刻度(tick)、座標軸刻度標籤(tick label)、網格線(grid)、圖例(legend)、標題(title)等內容。該層的設置可以使圖像顯示更加直觀更加容易被用戶理解,但又不會對圖像產生實質的影響。

pyplot基本繪圖功能介紹

 matplotlib是受MATLAB的啓發構建的。MATLAB是數據繪圖領域普遍使用的語言和工具。MATLAB語言是面向過程的。利用函數的調用,MATLAB中能夠輕鬆的利用一行命令來繪製直線,而後再用一系列的函數調整結果。spa

 matplotlib有一套徹底仿照MATLAB的函數形式的繪圖接口,那就是matplotlib.pyplot。pyplot是Matplotlib的子庫,它提供了和matlab相似的繪圖API,方便用戶快速繪製2D圖表。pyplot中基本包含了matplotlib的所有功能,咱們通常也是對它進行操做的。3d

在使用的時候,咱們能夠經過下面語句進行數據的導入:code

import matplotlib.pyplot as plt

 讓咱們從例子中來看pyplot使用的基本操做。對象

import matplotlib.pyplot as plt    # 導入模塊

# 1)建立畫布(容器層)
plt.figure(figsize=(10, 5))    # 10爲繪圖對象長度,5爲寬度 # 2)繪製折線圖(圖像層)
plt.plot([1, 2, 3, 4, 5, 6 ,7], [17,17,18,15,11,11,13]) # 3)顯示圖像
plt.show()

 經過上面代碼,咱們建立出了下面的圖像。blog

建立畫布

每次咱們打算繪製一個圖形的時候,都須要一個畫布,有的地方也稱它爲繪圖對象。通常用plt.figure()函數來建立一個畫布,好比:接口

經過figsize參數,咱們能夠設置畫布的長度和寬度,單位是英寸;經過dpi參數,咱們能夠指定繪圖對象的分辨率,即每英寸多少個像素,缺省值爲80。上面例子中,圖像的寬度爲:10*80=800像素。能夠看到和下面的結果是一致的。圖片

繪製圖像

咱們一般使用plt.plot來繪製一個圖像。咱們繪製圖像的時候是須要一個畫布的,咱們可使用上面的figure來具體設置一個畫布,若是不須要精確設置畫布的話,咱們使用plot時,Matplotlib會自動幫咱們生成一個畫布。

下面是兩個例子,他們設置的效果是同樣的:

plt.plot(x, y, label="$cos($x^2)", color="red", linewidth=2) plt.plot(x, y, "r-", label="cos($x^2)$")

 讓咱們經過例子瞭解一下這幾個參數:

(1)x、y:這兩個數很容易理解,就是兩個變量。咱們在座標軸上要肯定一個點每每要肯定兩個值:橫座標值和縱座標值。咱們繪製圖像的時候有不少種,有折線圖和曲線圖,均可以用它來設置。具體它們兩個設置的區別會在後面例子中講解。

(2)第三個參數:在第二個例子中,咱們設置了第二個參數"r-",它的意思是設置紅色的實線。

(3)label:設置圖例中的內容。有時咱們須要添加的是一些數據公式,咱們能夠在字符串先後添加「$」符號,Matplotlib就會使用它內嵌的latex引擎繪製咱們寫入的數學公式。在一些文本設置的時候,咱們也會使用$符號,好比:r"$reall\ bad$"。中間的反斜槓是由於$中空格是不識別的,要加反斜槓進行轉義,這樣顯示的英文字體會好看不少。

(4)color:若是咱們不使用第三個參數的設置,這個參數能夠用來指定線條顏色。

(5)linewidth:用於指定曲線的寬度。

圖像輸出

圖像的輸出有兩種方式,一個是在直接顯示,一個是保存成圖片到本地

(1)直接顯示

咱們能夠經過plt.show()函數顯示圖像,顯示後會釋放畫布資源,若是在顯示圖像以後保存圖片,將只能保存空圖片。

(2)保存圖片到本地

咱們能夠經過plt.savefig()函數將圖像保存到指定路徑,這裏須要注意:若是直接顯示和保存到本地都要有的話,保存到本地的操做要寫到show函數前。好比:plt.savefig("D:\\demo.png")。

咱們還能夠經過設置dpi參數指定圖像的分辨率,好比:plt.savefig("D:\\demo.png", dpi=120)。

輔助顯示層

 咱們經過plt.plot函數繪製完圖形以後,是一個很樸素的圖,全部咱們一般會加入輔助顯示層來讓整個圖像變得豐滿,下面會介紹幾個經常使用的設置。

(1)顯示圖例

若是隻在plt.plot()中設置label還不能最終顯示出圖例,還須要經過plt.legend()將圖例顯示出來,好比:

plt.legend(loc="best")

 它的其餘參數設置,以下圖所示:

 

 

注意:若是設置爲best,matplotlib會自動找一個合適的位置顯示圖例。

(2)設置當前繪圖區標題

好比:plt.title("個人Matplotlib圖")。

(3)X、Y軸標題

好比:plt.xlabel("時間")、plt.ylabel("溫度")

(4)添加網格線

添加網格線咱們使用函數:plt.grid()

綜合例子

import matplotlib.pyplot as plt import numpy as np x = np.linspace(-3, 3, 100)    # 生成-3到3範圍內的100個點。
y = x*4+1 z = x**2 plt.figure(figsize=(8,4)) plt.plot(x, y, label="$x*2+1$", color="red", linewidth=2) plt.plot(x, z, "b--", label="$X^2$") plt.plot([1, 2, 3, 4, 5, 6 ,7], [7,7,8,5,0.3,1,0.3], "k:", label="折線圖") plt.grid() plt.legend(loc="best") plt.show()

 運行以後顯示的圖像以下:

相關文章
相關標籤/搜索