一篇文章帶你使用Pandas畫出圖形

這篇文章帶領你們介紹一下如何使用pandas進行可視化操做,繪製一些圖形,如條形圖、直方圖、散點圖等,以及一些繪圖時缺失值的繪製方式和一些繪圖的工具和格式,方便你們更快的瞭解如何使用Pandas進行可視化的繪圖,相信經過這篇文章你們能夠在之後處理數據的時候能夠繪製出本身想要的圖形。shell

1、可視化基礎介紹

Pandas在內部繪圖時使用的是matplotlib的API, Matplotlib是一個Python 2D繪圖庫,它能夠在各類平臺上以各類硬拷貝格式和交互式環境生成出具備出版品質的圖形。 Matplotlib可用於Python腳本,Python和IPython shell,Jupyter筆記本,Web應用程序服務器和四個圖形用戶界面工具包,Matplotlib試圖讓簡單的事情變得更簡單,讓沒法實現的事情變得可能實現。 只需幾行代碼便可生成繪圖,直方圖,功率譜,條形圖,錯誤圖,散點圖等。爲了簡單繪圖,pyplot模塊提供了相似於MATLAB的界面,特別是與IPython結合使用時。服務器

2、基本繪圖

在Pandas中series和DataFrame上面的使用plot方法進行繪圖只是圍繞着plt.plot()的簡單封裝。函數

  • 生成一個1000條隨機數,索引爲2000/1/1開始1000條的series,並生成圖。

在DataFrame中,plot()能夠方便的繪製帶有標籤的全部列工具

  • 生成一個行索引爲ts表的索引,列爲ABCD 4列,內容爲4列1000條隨機數的DataFrame,並繪製爲圖

  • 使用plot()中的x和y關鍵字能夠繪製一列與另外一列對應的圖片

3、其餘繪圖

繪製方法容許除了默認線條以外的其餘繪圖樣式。這些方法能夠經過plot()的kind關鍵字參數空值。包括如下內容:佈局

Bst或bsthspa

繪製條形圖3d

Hist對象

繪製直方圖索引

Box圖片

繪製箱形圖

Kde或density

繪製密度圖

Area

繪製區域圖

Scatter

繪製散點圖

Hexbin

繪製蜂巢圖

Pie

繪製餅圖

除了使用kind參數,也可使用直接對應的方法來完成相應的繪圖效果

  1. 條形圖

條形統計圖主要用於表示離散型數據資料,即計數數據。單式條形統計圖和複式條形統計圖的相同點是都能讓人清楚地看出 數量的多少。不一樣點就是單式條形統計圖用於比較一個物體,而複式條形統計圖用於比較多個物體的數量。

或者使用DataFrame的plot.bar()方法生成一個或多個條形圖

  • 生成10行4列的隨機數,列名爲a,b,c,d,並繪製條形圖

若是要生成堆疊的條形圖,能夠設置stacked參數=True;

若是要生成水平的條形圖可使用barh方法:

  1. 直方圖

直方圖能夠用來查看顯示質量波動的狀態;比較直觀地傳遞有關過程質量情況的信息;當質量數據波動情況以後,就能掌握過程的情況,從而肯定在什麼地方集中力量進行質量改進工做。

直方圖咱們能夠經過DataFrame.plot.hist()和series.plot.hist()進行繪製

直方圖還能夠經過參數實現堆疊,只須要將Stacked參數=True。寬度大小還能夠經過bins關鍵字更改。

  1. 箱線圖

箱線圖是利用數據中的五個統計量:最小值、第一四分位數、中位數、第三四分位數與最大值來描述數據的一種方法,它也能夠粗略地看出數據是否具備有對稱性,分佈的分散程度等信息,特別能夠用於對幾個樣本的比較,能夠用來查看數據異常值;數據的偏態和尾重;數據的形狀。

繪製箱線圖能夠經過plot.box()進行繪製

咱們還能夠經過傳遞顏色關鍵字對boxplot進行着色

着色完以後,盒子邊爲暗綠色,線條爲暗黃色,中位數爲暗藍色,第一四分位數和第三四分位數爲綠色。

咱們還能夠經過vert參數來空值方向,=False爲橫向,=True爲縱向(默認),還能夠經過positions空值每一個圖的位置。

除了經過plot.box()繪製箱線圖以外,咱們還能夠經過boxplot的方法直接進行繪圖,兩種方法的效果是同樣的。

咱們也能夠經過使用by關鍵字參數建立分層的boxplot來建立分組繪製圖形。

經過x列進行分組,col1中a的隨機數差距較大,b的差距很小,col2中a的差距小,b的差距稍大。

除了可使用單個關鍵字以外還能夠經過多個關鍵字進行分組

首先經過設置的條件能夠看出是對Col1和col2進行分組,分組的條件是X和Y,而後將X和Y進行分組,總共能夠分爲AA,AB,BA,BB這四種類型,而後將這四種類型進行繪製箱線圖得出圖形

四、面積圖

面積圖又稱區域圖,強調數量隨時間而變化的程度,也可用於引發人們對總值趨勢的注意。堆積面積圖和百分比堆積面積圖還能夠顯示部分與總體的關係。

咱們能夠經過面積圖查看總值的趨勢,能夠幫助咱們進行趨勢分析。

繪製面積圖咱們能夠經過plot.area

若是咱們不但願繪製堆疊圖,能夠經過Stacked=False,進行繪製

五、散點圖

散點圖是指數據點在直角座標系平面上的分佈圖,散點圖表示因變量隨自變量而變化的大體趨勢,一般用於迴歸分析,據此能夠選擇合適的函數對數據點進行迴歸擬合。多組散點圖一般用於聚類,能直觀地看出每組數據點的分佈。

繪製散點圖可使用plot.scatter()方法

若是但願再一個圖繪製多個列,指定繪圖的目標後ax能夠重複調用繪圖方法,最好是指定顏色和標籤關鍵字來區分每一個組。

經過數據能夠看出,兩個表的數據經過顏色區分開來,一個爲橙色一個爲藍色,很方便的就能看出每一個數據的分佈狀況。

關鍵字C能夠做爲列的名稱給出,能夠爲每一個點提供顏色。

六、蜂巢圖(六角形箱體圖)

使用plot.hexbin()進行繪製蜂巢圖,能夠看出數據出現的次數多少。

七、餅圖

餅狀圖是以圓形表明研究對象的總體,用以圓心爲共同頂點的各個不一樣扇形顯示各組成部分在總體中所佔的比例,要註明各扇形所表明的項目的名稱(可用圖例表示)及其所佔百分比。餅狀圖能夠比較清楚地反映出部分與部分、部分與總體之間的數量關係,易於顯示每組數據相對於總數的大小,並且顯現方式直觀。

咱們能夠經過plot.pie()進行生成餅圖

分紅兩組進行繪製

經過autopct參數進行查看佔比

若是數據中值的總和小於1的時候,那麼matplotlib則會繪製一個半圓。

4、缺失值的默認繪製方式

Pandas試圖真實確切地描繪包含缺乏值的DataFrame或series。根據繪圖類型,丟棄省略或填充缺失值。

繪圖類型

缺失值處理方法

Line

在缺失值處填充空白

Line(stacked)

填充爲0

Bar

填充爲0

Scatter

刪除掉缺失值

Histogram

刪除掉缺失值(逐列刪除)

Box

刪除掉缺失值(逐列刪除)

Area

填充爲0

Kde

刪除掉缺失值(逐列刪除)

Hexbin

刪除掉缺失值

Pie

填充爲0

若是默認的缺失值處理方式不符合預期的話,就須要本身手動去處理缺失值了(使用fillna或者dropna方法)

5、繪圖工具

一、矩陣散點圖

導入模塊

查看圖形

能夠發現每兩個圖之間出散點之間的位置與圖形

二、密度圖

查看數據的分佈狀況。

6、繪圖格式

大多數的繪圖方法都有一組關鍵字參數來控制返回圖形的佈局和格式。

一、控制圖例

當legend=True(默認)時會顯示圖例,也就是二圖的右上角,=False時會隱藏圖例。

二、scales

經過傳入logy得到將y軸更改成logy的狀況

三、在雙Y軸上面畫圖

若是要在DataFrame中繪製一些列,能夠將列的名稱給secondary_y關鍵字

若是在輔助Y軸上繪製的列在圖例中自動標記爲(右),若是要關閉自動標記,就須要使用mark_right=False了。

相關文章
相關標籤/搜索