可視化是數據探索性分析及結果表達的一種非常重要的形式,因此打算寫一個python繪圖系列,本文是第一篇,先說一下pandas.DataFrame.plot()繪圖功能。
pandas.DataFrame.plot()
在0.23.4版本的pandas中,pandas.DataFrame.plot()中常用的參數有以下幾個
- x:橫坐標上的標簽,一般是DataFrame中某個column的名稱,默認為None
- y:縱坐標上要顯示的column,如果不指定column,則默認會繪制DataFrame中所有對象類型為數值型的columns,非數值對象類型的column不顯示
- kind:選擇圖表類型,默認為折線圖。可選參數為‘line’(折線圖)、‘bar’(柱狀圖,豎直方向)、‘barh’(柱狀圖,水平方向)、‘hist’(直方圖)、‘box’(箱線圖)、‘kde’(核密度估計圖)、‘area’(面積圖)、‘pie’(餅狀圖)、‘scatter’(散點圖)、‘hexbin’(全成為hexagonal binning,有點類似熱點圖,用於顯示一個區域中點的個數,不過是用正六邊形表示數值區域)
- ax:matplotlib中的axes對象(可以理解為子圖對象)。在多子圖(使用matplotlib的subplots()函數,或者add_subplot()函數時),可以通過該參數選擇在哪個子圖上繪制圖形。參數默認為None
- subplots:是否單獨顯示每個columns,默認為False。設置為True時,會將每個columns的數據單獨在一個子圖中顯示
- sharex:僅作用於"subplots"為True時,是否允許所有的子圖共用同一個X軸標簽。當“ax”為None時,“sharex”默認為True;當“ax”不為None,“sharex”默認為False,此時每一個子圖有自己單獨的X軸標簽。
- sharey:當“ax”不為None或"subplots"為True是,是否允許共用一個Y軸標簽,默認為False。
- layout:當“subplots”為True時,用於布置圖片顯示布局,圖片按幾行、幾列顯示,參數為元組。
- figsize:元組類型,設置圖片尺寸。
- use_index:是否使用DataFarme的index作為X軸標簽,默認為True。當參數“x”不為None時。當DataFrame的index為非數值(包括字符串、datetime等類型),use_index參數設置無效。
- title:設置圖標標題。
- grid:是否顯示網格線,默認為False。
- legend:是否顯示圖例,默認為True,圖例就是clolumn的名稱。
- style:設置線型,默認為直線。
- xticks:設置X軸上的坐標值,需要數值型序列。
- yticks:同"xticks",作用於Y軸
- xlim:設置圖片中X軸數值刻度顯示的區間范圍,元祖類型
- ylim:同xlim,作用於Y軸
- rot:X/Y軸上的刻度值顯示時候旋轉的角度,水平繪圖時旋轉X軸坐標,豎直繪圖時旋轉Y坐標
- fontsize:設置X/Y坐標的字體尺寸
- colormap:設置圖形顯示的顏色,用matplotlib內指定的表示顏色的字符串或者colormap對象指定
- colorbar:是否顯示顏色條,僅僅在繪制有顏色條的圖形時使用,如‘scatter’、‘henbin’圖
- position:僅作用於繪制柱狀圖時,取值范圍[0,1],用於設置X坐標顯示的位置,0表示顯示在最左邊的柱條處,1表示顯示在最右邊的柱條處。
- sort_columns:是否允許對columns的名稱進行排序、決定繪圖順序
- scondary_y:是否在第二個(一般默認指右邊的Y軸)Y軸上繪圖,默認為False。該參數還可以傳入一個list或tuple,表示指定哪些columns在第二個Y軸上繪圖。
- mark_right:當使用第二個Y繪圖時,是否允許在圖例的右邊加上“right”字樣,表明是在第二個軸上繪圖,默認是True
- **kwds:該參數表明除去以上參數外,你可以傳入matplotlib其它的繪圖方法
函數返回值: matplotlib.axes.Axes對象,或者包含該對象的numpy.adarray對象
pandas.DataFarme.plot()繪圖功能內部使用的還是matplotlib庫的繪圖函數,只不過對DataFarme結構來說,DataFarme.plot()用起來顯得方便一些,如果對圖形做更深層次的自定義,還是用matplotlib繪圖更合適一些,可以對更多參數進行設置。
另外需要說明的是,可以通過“kind”參數選擇繪制各種類型的圖形,但也可以采用DataFrame.plot().bar()(柱狀圖)這種形式,然后再去設置這種圖形繪制時的參數,一般建議采用DataFrame.plot.bar()形式。