1. 程式人生 > >python之matplotlib庫畫圖入門

python之matplotlib庫畫圖入門

    什麼是matplotlib呢?其實matplotlib是python的一個包(庫)。在您的計算機裡安裝anaconda這個軟體,就可以直接使用這個包了。另外anaconda中集成了很多的python包,自帶我們常用的Jupyter Notebook,是我們做資料科學,學習機器學習的很好工具。

    學習任何一種程式的世界裡學習新東西都是從Hello World開始的,那麼同樣學習matplotlib我們也從入門級開始吧。

    直接上程式碼會不會嚇到大家,這可是學習matplotlib最簡單的一段程式了。這段程式碼的功能就是畫一個初中數學中的一個sin函式,如下圖所示。

    上圖的程式碼塊匯入了matplotlib和numpy這兩個庫。使用了numpy中的linspace方法和sin方法,matplotlib庫中的plot方法和show方法。其中linspace方法是在[0,2π]區間上取樣100個數據,然後賦值給x,這個x的資料結構就是我們在numpy中常用的ndarray(陣列)。plot方法就是使用x軸的資料和y軸的資料畫的一個圖,畫的這個圖使用show方法展示出來。是不是很簡單!!!


    既然入門了,那就在多學習一點matplotlib方法吧。學習這些庫就是在學習其中的方法,熟悉其中的用法,其實也沒什麼難的,只是我們不太熟悉罷了。那我們在看一個稍微比較完善的例子:如下圖所示。


    先不暈哈,這裡呢我主要造了兩組資料。並把它們畫到了一個圖上。如下圖所示。然後我又使用matplotlib中的xlabel方法和ylabel方法,給我的圖添加了“x axis”和“y axis”。 title方法當然是設定圖的標題了。還有plot方法中的’r--’和’b--’,是畫紅色(red)虛線和藍色(blue)虛線的意思。嗯,就是這樣,很簡單。


    接下來我們繼續看一下子圖的概念。Matplotlib庫可以使用plot方法畫圖,如果畫子圖呢,當然使用subplot方法了。下面我們將上面例子中的紅色和藍色虛線畫到一個圖的兩個子圖上。程式碼如下圖所示哈:


    造的資料和上面的例子一模一樣,subplot(2,1,1)方法的意思是,將一個圖劃分成2行一列,第三個引數的意思是在第幾行上畫子圖。就解釋這一行程式碼吧,其他程式碼的意思都一樣。畫出的子圖如下圖所示:


    其實matplotlib包中還有一個畫子圖簡單的方法—subplots()。用法如下圖所示:


    呼叫subplots方法,會返回兩個物件。為什麼會這樣,其他程式語言好像沒有這麼幹的,這或許就是python的特點吧。這兩個物件是什麼呢?第一個figure是圖物件,第二個是一個數組,裡面放著4個子圖物件。這樣畫出來的圖形如下圖所示:


先寫到這吧,歡迎吐槽。