一提到python繪圖剩岳,matplotlib是不得不提的python最著名的繪圖庫坎缭,它里面包含了類似matlab的一整套繪圖的API沮榜。因此,作為想要學習python繪圖的童鞋們就得在自己的python環(huán)境中安裝matplotlib庫了郊愧,安裝方式這里就不多講朴译,方法有很多,給個參考的属铁。
本文將在已安裝matplotlib的環(huán)境中教新手如何快速使用其中的接口進行繪圖操作眠寿,并展現(xiàn)一個非常直觀的繪圖例子,以及控制繪圖中的一些細節(jié)的方法焦蘑。
既然繪圖要用matplotlib的包盯拱,并且我們也已經安裝了,那么首先肯定是要引入這個包了:importmatplotlib.pyplot as plt
當然也可以替換為引入pylab(是matplotlib的一個子包,非常適合于進行交互式繪圖坟乾,本文將以這個為例):importpylab as pl
接下來迹辐,就是對具體數(shù)據進行繪圖了。比如我們要繪制一條y=x^2的曲線甚侣,可這樣寫代碼:
x = range(10)#橫軸的數(shù)據y = [i*iforiinx]#縱軸的數(shù)據pl.plot(x, y)#調用pylab的plot函數(shù)繪制曲線pl.show()#顯示繪制出的圖
執(zhí)行之后就可以看到繪制出來的圖了:
可以看到,要顯示一個圖非常簡單间学,只要有了兩個list作為輸入數(shù)據殷费,先后調用plot和show函數(shù)就可以了。一定要記得只有調用了show之后才會顯示出來低葫!只有plot是不行的详羡!
在實際運用中,可能這樣一條簡單粗暴的線可能并不是我們想要的最好的結果嘿悬,比如实柠,想要在圖形上顯示原始數(shù)據點,很簡單善涨,只要在plot函數(shù)中加上一個參數(shù)即可:pl.plot(x, y,'ob-')#顯示數(shù)據點窒盐,并用藍色(blue)實現(xiàn)繪制該圖形
這個參數(shù)用法比較靈活,可以從下面的值中組合選擇:
顏色(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函數(shù)之前添加如下代碼:
pl.xlabel(u"我是橫軸")
pl.ylabel(u"我是縱軸")
效果如下:
這里一定要記住源内,傳遞的字符串一定要是Unicode編碼葡粒,如果是直接傳入字符串,形式如u'這里是要寫的字符串'即可膜钓。
現(xiàn)在就直觀多了吧嗽交,終于像一個正常的圖了,不過颂斜,還想再在圖里加個圖例該咋辦夫壁?也不難,繼續(xù)給plot傳參數(shù):
pl.plot(x, y,'ob-', label=u'y=x^2曲線圖')#加上label參數(shù)添加圖例pl.legend()#讓圖例生效
這里也是一樣焚鲜,label字符串參數(shù)務必加上u''聲明為unicode編碼掌唾,否則圖例將會添加失敗。效果圖如下:
oh忿磅,看到圖像上面光禿禿的糯彬,就好想給它加個標題:pl.title(u'圖像標題')#字符串也需要是unicode編碼
有時候,我們的數(shù)據可能分布并沒有這么集中葱她,比如我們想要對項目中的某些數(shù)據進行繪圖觀察時發(fā)現(xiàn)撩扒,大量數(shù)據聚集在0附近,而少量很大的數(shù)據會導致圖像顯示效果很不好,比如:
x = range(10)+[100]
y= [i*iforiinx]
pl.plot(x, y,'ob-', label=u'y=x^2曲線圖')
這時搓谆,我們想要限制需要顯示的坐標范圍:
pl.xlim(-1, 11)#限定橫軸的范圍pl.ylim(-1, 110)#限定縱軸的范圍
再上效果圖:
好了炒辉,到這里plot的常用繪圖用法就講完了,另外泉手,如果需要在一幅圖中顯示多條線黔寇,可以在show函數(shù)調用前繼續(xù)調用plot函數(shù),傳入需要繪制的數(shù)據和圖形顯示要求斩萌。
matplotlib是個非常好用的庫缝裤,不管是對于需要寫論文畫圖,還是數(shù)據調研中看數(shù)據相關性颊郎,都是一個得力助手憋飞。寫這篇文章的背景是我之前在項目中也使用這個做了一個特征與結果之間的相關性調研中使用到了繪圖,就學習了一下姆吭,下面是對真實數(shù)據進行屏蔽改寫之后的一個很像的示意圖(感興趣的可以到我github中看源碼榛做,本文的完整代碼及注釋也可在本鏈接只中找到):
本文簡要介紹了下python繪圖入門的一些用法,如有不對之處内狸,歡迎大家指正检眯。我也是不久前才開始真正使用python,這個強大而方便的語言會讓我們能更快地實現(xiàn)自己的想法答倡,大家有比較好的python資料也歡迎留言轰传,共同學習,謝謝瘪撇!
轉自使用matplotlib,pylab進行python繪圖(http://www.cnblogs.com/webary/p/5813855.html)