使用Seaborn和Pandas進行資料視覺化

2021-10-09 16:07:03 字數 3983 閱讀 6085

目錄介紹

在python中比較視覺化庫

seaborn視覺化型別

建立乙個條形圖

建立seaborn折線圖

有了我們的資料集之後,我們將快速檢視可以使用流行的

python

庫從資料集輕鬆建立視覺化,然後逐步介紹乙個視覺化示例。

本文是使用

python

和pandas

進行資料清洗系列的一部分。它旨在利用資料科學工具和技術來使開發人員快速啟動並執行。

現在,我們的資料似乎很乾淨了,並且有幾種不同的潛在檢視,我們可以探索視覺化選項。視覺化是資料清理過程中的最後乙個重要步驟,因為它提供了確保資料集有意義的好方法。

請注意,我們已經使用該系列模組的源資料檔案建立了完整的

jupyter notebook

有許多python

庫可用於視覺化資料集。流行的包括

matplotlib

,seaborn

,ggplt

和plotly

。我們當前使用的庫

pandas

也具有自己的視覺化功能。

那麼,您如何選擇以及需要什麼呢?好吧,這很大程度上取決於您的要求以及您對視覺化和

python

的舒適程度。

在我們的案例中,我們將展示一些

seaborn

視覺化資料集。

在資料集之上構建視覺化檔案時,可以選擇多種樣式。有時,最簡單的選項可提供最佳結果,但某些視覺化檔案適合不同的資料集。

以下是一些更常見的視覺化示例:

條形圖——資料的最常見視覺化是條形圖。當您想擁有不同資料元素的比較檢視時,此圖表最有用。例如,在條形圖中,您可以很容易地看到最大值,最小值或乙個或多個值之間的差異。

面積圖——面積圖看上去與條形圖相似,但是對於顯示值的增加和減少更為有用。

折線圖——折線圖通常用於表示一些隨時間變化的觀測值,例如趨勢分析,尤其是當這些隨時間變化小的情況時。

箱形圖——有時您的資料集不是由簡單值組成。箱形圖使您可以視覺化包含五個數字的摘要:最小值;四分之一;中位數

;第二四分位

和最大值。

散點圖——散點圖通常將值表示為點,可用於視覺化值的分布。

核心密度圖——最後,如果您需要視覺化概率密度,則核心密度圖可以很好地工作。

這些只是

seaborn

可以建立的更受歡迎的視覺化檔案中的一些。

seaborn

的文件站點也有大量

的示例庫

。我們將使用資料集檢視兩種不同的視覺化效果,即條形圖和折線圖。

儘管這兩種視覺化只是

seaborn

所包含內容的一小部分,但重要的部分是了解

seaborn api

並觀察其直接從

pandas dataframe

中提取資料的難易程度。一旦了解了如何使用

seaborn

繪製簡單的圖表,便可以開始研究並使用庫的更高階的視覺化工具。

我們將從本系列前面的文章中建立的

pandas dataframes

dataframe

,請隨時返回並閱讀整個系列。快速,有趣的閱讀!

但是,如果您已經熟悉

pandas dataframes

,則無需閱讀該系列。您已經知道理解以下**示例所需的一切。

為了展示乙個簡單的條形圖,讓我們看一下在重塑資料步驟結束時按狀態

dataframe

建立的總購買量的視覺化。我們已經在

notebook

的開頭匯入了

seaborn

並使用以下**進行設定:

import seaborn as sns

sns.set(style="darkgrid")

如果我們開始乙個新的**塊並新增以下內容:

plt.figure(figsize=(20,10))

statetotalschart = sns.barplot(data=totalsdata, x='state',y='amount')

statetotalschart.set_xticklabels(statetotalschart.get_xticklabels(), rotation=45, horizontalalignment='right')

生成的條形圖如下所示:

這三行**完成了三件事。首先,它通過設定

figsize

來使預設圖表大一些。第二行使用

barplot

建立實際的條形圖,並將資料設定為總計資料,狀態為

x軸,數量為

y軸。最後,最後一行通過旋轉

x軸標籤稍微改善了它們。這使視覺化效果看起來非常好,並且只花了三行**。

為了展示折線圖,我們將建立乙個新的摘要

dataframe

,其中的資料按購買日期分組。建立乙個新的**塊並新增以下內容:

purchasesbyday = combineddata.groupby(by='purch_date').sum().reset_index()

purchasesbyday.drop(columns=['purchase_id','customer_id','product_id'], inplace=true)

print(purchasesbyday.head(10))

這將建立乙個新的

dataframe

,其中彙總了當天的已售商品數量,已付款額和零售成本。

現在,我們可以啟動另乙個新的**塊並建立折線圖:

plt.figure(figsize=(20,10))

dailytotalschart = sns.lineplot(data=purchasesbyday, x='purch_date',y='amount')

圖表如下:

這次我們只需要兩行,第一行設定圖表的大小,並且由於

x軸是日期序列,

seaborn

正確地總結了

x軸,第二行建立了隨時間推移的購買總額的圖表。這使我們可以非常輕鬆地用很少的**行來建立有用的圖。

我們只涉及了

seaborn

可以做的事情的表面,因為它將需要整本書來詳細介紹它。好訊息是,

seaborn

的api

非常一致。您可以利用在建立簡單的折線圖和條形圖時所學的知識,並將其與

seaborn

的一些更高階的視覺化結合使用。

此外,seaborn

擁有出色的文件。如果單擊

seaborn

大型示例庫中的

任何示例

,您將看到顯示如何建立視覺化效果的**。

我們研究了

python

可用的許多不同的視覺化庫,以及一系列不同的視覺化型別。僅用幾行**,我們在清理後的資料集之上新增了一些有用的視覺化。隨著資料的更改,我們可以繼續重新執行此

notebook

,以每週、每月甚至每年更新此資料的視覺化。我們甚至可以使用此資料集來訓練機器學習模型。

seaborn簡單使用

匯入相應的python包 import pandas as pd import warnings 用來忽略seaborn繪相簿產生的warnings warnings.filterwarnings ignore import seaborn as sns import matplotlib.pypl...

numpy 索引多個 numpy和pandas

numpy numpy的陣列為ndarray ndarray與python列表的不同 eg 6.7.5 8.0.1.沒有 隔開,6.0表示為6.整合了c 進行運算 numpy的目的就是讓你不寫迴圈,所以效率很高 pandas 資料結構 series dataframe 索引物件 series 一組n...

在XNA中使用panda外掛程式匯出的 X檔案注意事項

引起這些問題的原因很多,先說說座標系,xna採用右手座標系,3dsmax也採用右手座標系,這是一樣的,但是不要忘了,當我們使用dxsdk自帶的模型檢視器觀察模型的時候,d3d用的可是左手座標系,而panda作為.x檔案匯出器,自然對d3d的座標系格外照顧,這樣看起來問題有一些複雜,好在我們不需要糾纏...