1. 程式人生 > >pandas之DataFrame繪圖

pandas之DataFrame繪圖

我們知道Pandas庫中有兩種資料結構一種是Series結構型別的資料,還有一個種就是DataFrame型別的資料,那麼今天我們就來聊一聊DataFrame結構型別的資料繪圖。

我們先來看一個最簡單的例子。試試我們的小心臟會不會跳動,哈哈。直接上乾貨,程式碼如下:

如果您對DataFrame有點陌生,啊哈,去百度一下了。解釋一下第5行,裡面用到了numpy庫中的randint函式,這是函式用來隨機生成一些整數。randint(1,10,40)意思是隨機生成40個[1,10)之間的整數。那後面的reshape函式是幹嘛的呢?這個函式的意思是將生成的40個整數從一維的資料(1行40列)變成二維的資料(10行4列)。columns就是列名。然後我們呼叫dataframe內建的plot方法。最後呼叫matplotlib庫中的show方法,就這樣很簡單。我們來看一下效果如下圖所示:

Dataframe是將每一列畫一條線。預設帶圖例。plot方法其實可有很多引數以來幫助我們畫圖。比如我們想畫一個柱狀圖,怎麼辦?修改第7行程式碼:

然後效果圖如下:

比如我們想畫一個堆疊的柱狀圖,怎麼辦?修改第7行程式碼:

效果圖如下:


比如我們想畫一個填充的線性圖,怎麼辦?修改第7行程式碼:


效果圖如下:

一口氣給大家演示不同型別的圖,其實實現起來很簡單啊,就是給plot方法傳入不同的引數以及相應的引數值。如果大家還有其他的需求可以去檢視官方文件,還有更精彩的demo以及更炫的用法等著大家去挖掘去嘗試。這裡做一個拋磚引玉,哈哈,感覺自己好有文采。

       對於DataFrame,每一行可以看做一個Series,每一列也可以看做一個Series。我們接下來可以做一個實驗。

l  將每一行看做一個Series。


我在這裡建立的DataFrame更簡便。Column和index的預設值分別是:column=[0,1,2,3],index=[0,1,2,3,4,5,67,8,9],對於這種結構我們在頭腦裡要有一個大致的框架。iloc方法是獲取DataFrame的第幾行資料。在這裡我獲取了3行資料,然後畫在了一張圖上。效果圖如下:


做一個小小的說明:上圖中的x軸,對應的是DataFrame的column。

l  將每一列看做一個Series。


df[0],df[1]是獲取DataFrame的第一列和第二列資料。然後將這兩列資料畫到一張圖上。效果圖如下:

做一個小小的說明:上圖中的x軸,對應的是DataFrame的index。

總結,對於DataFrame,大家在腦子裡要有一個結構哈,不然的話在我們做資料分析的時候,很多變化我們就有點懵了。關於dataframe的畫圖就寫到這裡吧,歡迎大家吐槽哦。