#pandas中的繪圖函數 pandas( http://http://pandas.pydata.org )是一個在python中的內存數據庫操做支持庫,在科研、金融等領域普遍使用。 pandas分爲Series(序列)和DataFrame(數據表)兩種數據結構,支持多種操做符,對於時間序列分析尤爲方便。pandas的Series和DataFrame都支持plot方法,能夠直接繪圖統計圖形。下面列出plot方法的主要參數。html
s=Series(np.random.randn(10).cumsum(),index=np.arange(0,100,10)) s.plot()
--label 用於圖例上的標籤。 --ax 要在其上進行繪製的matplotlib subplot對象。若是沒有設置,則使用當前matplotlib subplot --style 將要傳給matplotlib的風格字符串(如'ko--') --alpha 圖表的填充不透明度(0-1之間) --kind 能夠是'line','bar','barh','kde' --logy 在Y軸上使用對數標尺 --user_index 將對象的索引用做刻度標籤 --rot 旋轉刻度標籤(0到360) --xticks 用做X軸刻度的值 --yticks 用做Y軸刻度的值 --xlim X軸的界限(例如[0,10]) --ylim Y軸的界限 --grid 顯示軸網格線(默認打開)
df=DataFrame(np.random.randn(10,4).cumsum(0),columns=['A','B','C','D'],index=np.arange(0,100,10)) df.plot()
--subplots 將各個DataFrame列繪製到單獨的subplot中 --sharex 若是subplots=True,則共用同一個X軸,包括刻度和界限 --sharey 若是subplots=True,則共用同一個Y軸 --figsize 表示圖像大小的元組 --title 表示圖像標題的字符串 --legend 添加一個subplot圖例(默認爲True) --sort_columns以字母表順序繪製各列,默認使用當前列順序
fig,axes=plt.subplots(2,1) data=Series(np.random.randn(16),index=list('abcdefghijklmnop')) data=data[data>0] data.plot(kind='bar',ax=axes[0],color='k',alpha=0.7) data.plot(kind='barh',ax=axes[1],color='k',alpha=0.7)
df=DataFrame(np.random.rand(6,4), index=['one','two','three','four','five','six'], columns=pd.Index(['A','B','C','D'],name='Genus')) df df.plot(kind='bar') df.plot(kind='barh',stacked=True,alpha=0.5)
tips=pd.read_csv('ch08/tips1.csv') party_counts=pd.crosstab(tips.day,tips.size_new) party_counts party_counts=party_counts.ix[:,2:5]
*規格化, 和爲1python
party_pcts=party_counts.div(party_counts.sum(1).astype(float),axis=0) party_pcts party_pcts.plot(kind='bar',stacked=True)
tips['tip_pct']=tips['tip']/tips['total_bill'] tips['tip_pct'].hist(bins=50) tips['tip_pct'].plot(kind='kde')
comp1=np.random.normal(0,1,size=200) comp2=np.random.normal(10,2,size=200) values=Series(np.concatenate([comp1,comp2])) values.hist(bins=100,alpha=0.3,color='k',normed=True) values.plot(kind='kde',style='k--')
macro=pd.read_csv(r'ch08\macrodata.csv') data=macro[['cpi','m1','tbilrate','unemp']] trans_data=np.log(data).diff().dropna() trans_data[-5:] plt.scatter(trans_data['m1'],trans_data['unemp']) plt.title('Changes in log %s vs. log %s'%('m1','unemp')) pd.scatter_matrix(trans_data,diagonal='kde',color='k',alpha=0.3)