【python筆記】使用matplotlib,pylab進行python繪圖


     一提到python繪圖,matplotlib是不得不提的python最著名的繪圖庫,它里面包含了類似matlab的一整套繪圖的API。因此,作為想要學習python繪圖的童鞋們就得在自己的python環境中安裝matplotlib庫了,安裝方式這里就不多講,方法有很多,給個參考的

  本文將在已安裝matplotlib的環境中教新手如何快速使用其中的接口進行繪圖操作,並展現一個非常直觀的繪圖例子,以及控制繪圖中的一些細節的方法。

  既然繪圖要用matplotlib的包,並且我們也已經安裝了,那么首先肯定是要引入這個包了: import matplotlib.pyplot as plt 

  當然也可以替換為引入pylab(是matplotlib的一個子包,非常適合於進行交互式繪圖,本文將以這個為例): import pylab as pl 

  接下來,就是對具體數據進行繪圖了。比如我們要繪制一條y=x^2的曲線,可這樣寫代碼:

x = range(10)  # 橫軸的數據
y = [i*i for i in x]  # 縱軸的數據
pl.plot(x, y)  # 調用pylab的plot函數繪制曲線
pl.show()  # 顯示繪制出的圖

  執行之后就可以看到繪制出來的圖了:

  

  可以看到,要顯示一個圖非常簡單,只要有了兩個list作為輸入數據,先后調用plot和show函數就可以了。一定要記得只有調用了show之后才會顯示出來!只有plot是不行的!

  在實際運用中,可能這樣一條簡單粗暴的線可能並不是我們想要的最好的結果,比如,想要在圖形上顯示原始數據點,很簡單,只要在plot函數中加上一個參數即可: pl.plot(x, y, 'ob-') # 顯示數據點,並用藍色(blue)實現繪制該圖形 

  這個參數用法比較靈活,可以從下面的值中組合選擇:

顏色(color 簡寫為 c): 藍色: 'b' (blue) 綠色: 'g' (green) 紅色: 'r' (red) 藍綠色(墨綠色): 'c' (cyan) 紅紫色(洋紅): 'm' (magenta) 黃色: 'y' (yellow) 黑色: 'k' (black) 白色: 'w' (white) 線型(linestyle 簡寫為 ls): 實線: '-' 虛線: '--' 虛點線: '-.' 點線: ':' 點: '.' 點型(標記marker): 像素: ',' 圓形: 'o' 上三角: '^' 下三角: 'v' 左三角: '<' 右三角: '>' 方形: 's' 加號: '+' 叉形: 'x' 棱形: 'D' 細棱形: 'd' 三腳架朝下: '1'(像'丫') 三腳架朝上: '2' 三腳架朝左: '3' 三腳架朝右: '4' 六角形: 'h' 旋轉六角形: 'H' 五角形: 'p' 垂直線: '|' 水平線: '_'

  線是調好了,可是還想加上橫縱坐標的說明呢?也很簡單,在調用show函數之前添加如下代碼:

pl.xlabel(u"我是橫軸") pl.ylabel(u"我是縱軸")

  效果如下:

  

  這里一定要記住,傳遞的字符串一定要是Unicode編碼,如果是直接傳入字符串,形式如 u'這里是要寫的字符串' 即可。

  現在就直觀多了吧,終於像一個正常的圖了,不過,還想再在圖里加個圖例該咋辦?也不難,繼續給plot傳參數:

pl.plot(x, y, 'ob-', label=u'y=x^2曲線圖')  # 加上label參數添加圖例
pl.legend()  # 讓圖例生效

  這里也是一樣,label字符串參數務必加上u''聲明為unicode編碼,否則圖例將會添加失敗。效果圖如下:

  

  oh,看到圖像上面光禿禿的,就好想給它加個標題: pl.title(u'圖像標題') # 字符串也需要是unicode編碼 

  有時候,我們的數據可能分布並沒有這么集中,比如我們想要對項目中的某些數據進行繪圖觀察時發現,大量數據聚集在0附近,而少量很大的數據會導致圖像顯示效果很不好,比如:  

x = range(10)+[100] y = [i*i for i in x] pl.plot(x, y, 'ob-', label=u'y=x^2曲線圖')

  

  這時,我們想要限制需要顯示的坐標范圍:

pl.xlim(-1, 11)  # 限定橫軸的范圍
pl.ylim(-1, 110)  # 限定縱軸的范圍

  再上效果圖:

  


 

  好了,到這里plot的常用繪圖用法就講完了,另外,如果需要在一幅圖中顯示多條線,可以在show函數調用前繼續調用plot函數,傳入需要繪制的數據和圖形顯示要求。

  matplotlib是個非常好用的庫,不管是對於需要寫論文畫圖,還是數據調研中看數據相關性,都是一個得力助手。寫這篇文章的背景是我之前在項目中也使用這個做了一個特征與結果之間的相關性調研中使用到了繪圖,就學習了一下,下面是對真實數據進行屏蔽改寫之后的一個很像的示意圖(感興趣的可以到我github中看源碼,本文的完整代碼及注釋也可在本鏈接只中找到):

    

 


 

  本文簡要介紹了下python繪圖入門的一些用法,如有不對之處,歡迎大家指正。我也是不久前才開始真正使用python,這個強大而方便的語言會讓我們能更快地實現自己的想法,大家有比較好的python資料也歡迎留言,共同學習,謝謝!

  轉載請注明出處:使用matplotlib,pylab進行python繪圖(http://www.cnblogs.com/webary/p/5813855.html)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM