python繪圖:matplotlib和pandas的應用


在進行數據分析時,繪圖是必不可少的模式探索方式。用Python進行數據分析時,matplotlib和pandas是最常用到的兩個庫。

1、matplotlib庫的應用
准備工作如下:打開ipython,輸入命令分別導入numpy和matplotlib.pylab庫。

[python]  view plain  copy
 
  1. import numpy as np  
  2. import matplotlib.pylab as plt  


1)創建fig
繪圖第一步是創建繪圖窗口fig。

[python]  view plain  copy
 
  1. fig1 = plt.figure()  


2)創建subplot
在窗口上添加AxesSubplot類型的子繪圖區域,一個窗口可以添加多個子繪圖區。

[python]  view plain  copy
 
  1. ax1 = fig1.add_subplot(2,2,1)  
  2. ax4 = fig1.add_subplot(2,2,4)  


3)subplot中繪圖
調用子繪圖區的方法,可以繪制點線圖、頻數圖、散點圖等常用圖形。
注意:在同一個subplot中多次調用plot(),所得到的圖形是相互覆蓋的。

[python]  view plain  copy
 
  1. ax1.plot(np.random.randn(50).cumsum(),'k--')  
  2. ax4.hist(np.random.randn(30))  


4)各類參數設置
主要關注以下幾種方法:set_xlims設置坐標軸的上下限、set_ticks設置坐標刻度、set_ticklabel設置坐標標注。

[python]  view plain  copy
 
  1. ax1.set_xlim(-10,60)  
  2. ax1.set_xticks([0,20,40,60])  
  3. ax1.set_xticklabels(['a','b','c','d'])  


5)清除和保存圖形
用subplot的clear()方法可以清除現有的圖形,用figure的savefig()保存圖形到指定路徑。

[python]  view plain  copy
 
  1. ax1.clear()  
  2. #windows下的路徑  
  3. fig1.savefig(‘.\\test.jpg’)  


2、pandas庫的應用
相比於利用matplotlib庫繪圖,采用pandas繪圖要便捷得多。參照前一部分,同樣需要導入pandas、numpy庫。

[python]  view plain  copy
 
  1. import pandas as pd  
  2. from pandas import Series,DataFrame  
  3. import numpy as np  


1)plot方法及參數
對於Series和DataFrame類型的數據,可以直接調用兩種類型對應的plot方法,繪圖時自動采用索引值繪制橫坐標,采用每一列數據繪制縱坐標。這里分別以兩類數據為例。

[python]  view plain  copy
 
  1. se1 = Series(np.random.randn(30).cumsum())  
  2. df = DataFrame({'a':np.random.randn(30),'b':np.random.randn(30)})  

 

參數設置很方便,在plot()方法參數列表中添加相應參數值即可。常用的有:類型kind可設置為line(線圖)、bar(垂直柱狀圖)、barh(水平柱狀圖)、kde(核密度估計圖),另外還有color顏色設置、linestyle線型設置、alpha設置透明度、grid設置網格等。

[python]  view plain  copy
 
  1. se1.plot(kind = 'bar', color = 'g', alpha = 0.5, grid=True)  
  2. df.plot(kind = 'bar', alpha=0.5)  


2)頻數圖、散點圖
頻數圖采用hist繪制即可,單幅的散點圖還得依靠matplotlib庫,但pandas提供多幅散點圖矩陣的快速繪圖方法。

[python]  view plain  copy
 
  1. se1.plot(kind = 'bar', color = 'g')  
  2. #對角線上圖形設置為核密度圖  
  3. pd.scatter_matrix(df, diagonal='kde')  


3)清除和保存圖形
有時候,我們希望清除掉當前圖形或者干脆關閉繪圖窗口。可以采用figure的clear()方法清除圖形,采用matplotlib.pylab的close()方法則能夠直接關閉圖形窗口。

[python]  view plain  copy
 
  1. df.plot()  
  2. #清除繪圖  
  3. _.get_figure().clear()  
  4. #關閉窗口  
  5. plt.close()  


3、python繪圖的未來
Python同時具備強大的數據分析功能和Web開發功能,未來繪圖的趨勢將是更加緊密的聯系數據分析和Web發布功能,所有繪制的圖形應當能夠方便的在網頁上發布。數據分析人員和網頁開發人員的工作耦合將會更加緊密。


免責聲明!

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



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