前言
matplotlib 是Python最著名的繪圖庫,它提供了一整套和matlab相似的命令API,十分適合交互式地進行制圖。本文將以例子的形式分析matplot中支持的,分析中常用的幾種圖。其中包括填充圖、散點圖(scatter plots)、. 條形圖(bar plots)、等高線圖(contour plots)、 點陣圖和3D圖,下面來一起看看詳細的介紹:
一、填充圖
參考代碼
from matplotlib.pyplot import *x=linspace(-3,3,100)y1=np.sin(x)y2=np.cos(x)fill_between(x,y1,y2,where=(y1>=y2),color='red',alpha=0.25)fill_between(x,y1,y2,where=(y<>y2),color='green',alpha=0.25)plot(x,y1)plot(x,y2)show()
簡要分析
這里主要是用到了fill_between函數。這個函數很好理解,就是傳入x軸的數組和需要填充的兩個y軸數組;然后傳入填充的范圍,用where=來確定填充的區域;最后可以加上填充顏色啦,透明度之類修飾的參數。
當然fill_between函數還有更加高級的用法,詳見fill_between用法或者help文檔。
效果圖

二、散點圖(scatter plots)
參考代碼
from matplotlib.pyplot import *n = 1024X = np.random.normal(0,1,n)Y = np.random.normal(0,1,n)T = np.arctan2(Y,X)scatter(X,Y, s=75, c=T, alpha=.5)xlim(-1.5,1.5)ylim(-1.5,1.5)show()
簡要分析
首先介紹一下numpy 的normal函數,很明顯,這是生成正態分布的函數。這個函數接受三個參數,分別表示正態分布的平均值,標準差,還有就是生成數組的長度。很好記。
然后是arctan2函數,這個函數接受兩個參數,分別表示y數組和x數組,然后返回對應的arctan(y/x)的值,結果是弧度制。
接下來用到了繪制散點圖的scatter方法,首先當然是傳入x和y數組,接著s參數表示scale,即散點的大小;c參數表示color,我給他傳的是根據角度劃分的一個數組,對應的就是每一個點的顏色(雖然不知道是怎么對應的,不過好像是一個根據數組內其他元素進行的相對的轉換,這里不重要了,反正相同的顏色賦一樣的值就好了);最后是alpha參數,表示點的透明度。
至于scatter函數的高級用法可以參見官方文檔scatter函數或者help文檔。
最后設置下坐標范圍就好了。
效果圖

三、條形圖(bar plots)
參考代碼
from matplotlib.pyplot import *n = 12X = np.arange(n)Y1 = (1-X/float(n)) * np.random.uniform(0.5,1.0,n)Y2 = (1-X/float(n)) * np.random.uniform(0.5,1.0,n)bar(X, +Y1, facecolor='#9999ff', edgecolor='white')bar(X, -Y2, facecolor='#ff9999', edgecolor='white')for x,y in zip(X,Y1): text(x+0.4, y+0.05, '%.2f' % y, ha='center', va= 'bottom')for x,y in zip(X,Y2): text(x+0.4, -y-0.05, '%.2f' % y, ha='center', va= 'top')xlim(-.5,n)xticks([])ylim(-1.25,+1.25)yticks([])show()
新聞熱點
疑難解答