不使用Matplotlib在Python中創(chuàng)建可視化的最簡單方法
Matplotlib 通常被認(rèn)為是在 Python 中創(chuàng)建可視化的最簡單方法,它構(gòu)成了許多其他繪圖庫(如 Seaborn)的基礎(chǔ)。今天我們來講一下創(chuàng)建可視化的另一個(gè)方法,Pands。直接從Pandas繪制有許多優(yōu)點(diǎn):
- 它的速度更快 — 代碼行更少,需要編寫的代碼更少,需要重新加載的庫更少。可視化對(duì)于數(shù)據(jù)分析至關(guān)重要,因此沒有理由拒絕嘗試加快生成良好可視化的過程。此外,Pandas在我們想要它繪制的圖中做很多推論,因此它可以在很多情況下可視化我們想要的,而無需顯式聲明它們。
- 直接整合許多涉及系列和數(shù)據(jù)幀的方便數(shù)據(jù)操作功能(如不同的分機(jī)和滾動(dòng)方式)更容易。
- 實(shí)際上,直接從Pandas那里創(chuàng)建地塊更容易在條形圖、堆疊條形圖和水平條形圖之間轉(zhuǎn)換只是更改參數(shù)值的問題。創(chuàng)建子圖并操作子圖也只是幾個(gè)字符。Pandas在可視化方面承擔(dān)著許多艱苦的工作。
而對(duì)于技術(shù):Pandas的繪圖運(yùn)行在matplotlib基礎(chǔ)設(shè)施,并加載其他matplotlib項(xiàng)目或參數(shù)在Pandas創(chuàng)建的圖形的頂部可以改善它。相反,Pandas只是提供了一個(gè)方便和更直接的界面,將數(shù)據(jù)連接到可視化。例如,以下數(shù)據(jù)幀隨機(jī)生成,包含四列和十行。


只需用data.plot.bar()來繪制每行每列的值,就可以用data來替換數(shù)據(jù)幀的名稱。請(qǐng)注意,在語句之后添加分號(hào) () 會(huì)從輸出其他打印(例如 , )中刪除單元格。

或者,嘗試添加一個(gè)參數(shù)stacked=True,這是直接從數(shù)據(jù)源創(chuàng)建堆疊條形圖的非常簡單的方法。

或者,嘗試使用barhdata.plot.barh(stacked=True)繪制水平條,所有這些變體只需一行代碼就可以輕松創(chuàng)建,因?yàn)樗鼈兣c數(shù)據(jù)建立了直接流。

可以通過在繪圖的代碼(sns.set_palette(‘magma’))之前添加來更改繪圖的常規(guī)調(diào)色板?;蛘撸部梢詫㈩伾N圖參數(shù)傳遞到繪圖中。

顯示此類數(shù)據(jù)的另一種方法是使用data.plot.area()的區(qū)域圖。

代碼中的參數(shù)可以像通常使用 matplotlib 或海生模型那樣進(jìn)行調(diào)整。在data.plot.area(stacked=False)的情況下,參數(shù)(透明度)默認(rèn)設(shè)置為 0.5,但可以手動(dòng)調(diào)整。

直接使用Pandas的主要好處之一是,許多Pandas的有用數(shù)據(jù)幀操作可以直接使用。例如,data.diff()的結(jié)果,它只需將一行與它之前的行之間的差值(因此,第一行中存在 NaN)。這在許多時(shí)間序列應(yīng)用中都很有幫助。

例如,以下代碼,該代碼繪制出差異的數(shù)據(jù),并演示各種參數(shù)在Pandas繪圖中的用法,本例中為顏色:


Pandas數(shù)據(jù)處理功能的另一個(gè)應(yīng)用是,它采用平均滾動(dòng)均值,這是一種常見的統(tǒng)計(jì)方法,用于減少數(shù)據(jù)平均移動(dòng)窗口的數(shù)據(jù)的不可信度。


可直接從數(shù)據(jù)創(chuàng)建各種其他類型的繪圖:
- kde或用于密度圖density;
- scatter用于散點(diǎn)圖;
- hexbin對(duì)于六邊形箱圖;


注:盡管在默認(rèn)情況下 ,如果.plot.scatter()figsize=(x,y)的顏色是灰度,但可以在顏色映射參數(shù)中傳遞。所有繪圖都有一個(gè)參數(shù),以便控制輸出圖形的大小。在每個(gè)繪圖線之后輸入分號(hào) (), 允許在 Jupyter 筆記本中具有多個(gè)輸出。
Pandas在為你繪圖時(shí)做重?fù)?dān)的一個(gè)例子是子圖。通過啟用 ,Pandas根據(jù)列自動(dòng)創(chuàng)建子圖。例如,考慮以下生成的 DataFrame,它有兩列 (和) 以及五行


通常,你需要手動(dòng)創(chuàng)建兩個(gè)子圖。特別是在想要生成多個(gè)子圖的情況下,可以想象直接使用Pandas繪圖方法會(huì)很有幫助。
餅圖的其他參數(shù)包括 ,它將自定義標(biāo)簽添加到切片中;,指定每個(gè)切片的顏色;,確定十進(jìn)制標(biāo)簽的百分比和截?cái)喑潭?和 ,用于確定標(biāo)簽的大小。作為直接Pandas繪圖中子圖的便利性的另一個(gè)示例,請(qǐng)考慮繪制行數(shù)據(jù)(使用 時(shí)為默認(rèn)值):


在繪制可視化效果的代碼行中添加參數(shù)時(shí)(在 ): 后)中考慮結(jié)果,Pandas根據(jù)布局自動(dòng)以格式格式化子圖。每個(gè)子圖的尺寸由參數(shù)確定,該參數(shù)指定包含所有子圖的"主圖"的大小。

鑒于 Pandas 在直接繪圖中提供的參數(shù)量非常多 — 從錯(cuò)誤欄到提供表顯示,在可以創(chuàng)建的可視化效果方面幾乎沒有自由度損失。從提供簡單的繪圖變體到簡單的子圖管理,Pandas有太多提供繪圖。下次制作簡單的數(shù)據(jù)分析圖,試試Pandas!你可能會(huì)感到震驚的是,你能夠更高效地進(jìn)行可視化。