Seaborn的15種可視化圖表詳解
可視化是以圖形形式表示數據或信息的過程。在本文中,將介紹Seaborn的最常用15個可視化圖表。
Seaborn是一個非常好用的數據可視化庫,它基于Matplotlib,并且提供了一個高級接口,使用非常見簡單,生成圖表也非常的漂亮。
安裝
安裝非常簡單:
Pip install seaborn
在使用時只要導入就可以了。
import seaborn as sns
Seaborn提供了一些內置的數據集,這里我們使用Seaborn的Iris數據集。
data=sns.load_dataset('iris')
data[10:15]
我們看看數據量
data['species'].value_counts()
1、條形圖
條形圖用于表示分類變量,它只顯示平均值(或其他估計值)。我們為x軸選擇一個分類列,為y軸(花瓣長度)選擇一個數值列,我們看到它創建了一個為每個分類列取平均值的圖。
sns.barplot(x='species',y='petal_length',hue='species',data=data)
2、散點圖
散點圖是由幾個數據點組成的圖。x軸表示花瓣長度,y軸表示數據集的萼片長度。
sns.scatterplot(x='petal_length',y='sepal_length',hue='species',style='species',s=90,data=data)
3、直方圖
直方圖通常用于可視化單個變量的分布,但它們也可用于比較兩個或更多變量的分布。除了直方圖之外,KDE參數還可以用來顯示核密度估計(KDE)。這里,我們使用萼片長度。
sns.histplot(x='sepal_length',kde=True,data=data)
sns.histplot(x='sepal_length',kde=True,hue='species',data=data)
4、線形圖
線形圖可以用來可視化各種不同的關系。它們易于創建和分析,在線形圖中每個數據點由直線連接。
sns.lineplot(x='petal_length',y='petal_width',data=data)
5、小提琴圖
小提琴圖可以表示數據的密度,數據的密度越大的區域越胖。“小提琴”形狀表示數據的核密度估計,每個點的形狀寬度表示該點的數據密度。
sns.violinplot(x='species',y='petal_length',data=data,hue='species')
6、箱線圖
箱形圖由一個箱形圖和兩個須狀圖組成。它表示四分位數范圍(IQR),即第一和第三四分位數之間的范圍。中位數由框內的直線表示。須狀圖從盒邊緣延伸到最小值和最大值的1.5倍IQR。異常值是落在此范圍之外的任何數據點,并會單獨顯示出來。
sns.boxplot(x='species',y='sepal_length',data=data,hue='species')
7、熱圖
熱圖是數據的二維可視化表示,它使用顏色來顯示變量的值。熱圖經常用于顯示數據集中的各種因素如何相互關聯,比如相關系數。
heat_corr=data.corr()
sns.heatmap(heat_corr,annot=True)
8、點圖
點圖是一種統計圖表,用于顯示一組數據及其變異性的平均值或集中趨勢。點圖通常用于探索性數據分析,可以快速可視化數據集的分布或比較多個數據集。
sns.pointplot(x='species',y='petal_length',data=data,markers ='^',color='g')
9、密度圖
密度圖通過估計連續隨機變量的概率函數來表示數據集的分布,也稱為核密度估計(KDE)圖。
sns.kdeplot(x='petal_length',data=data,hue='species',multiple='stack')
sns.kdeplot(x='petal_length',y='sepal_length',data=data,hue='species')
10、計數圖
計數圖是一種分類圖,它顯示了分類變量的每個類別中觀測值的計數。它本質上是一個柱狀圖,其中每個柱的高度代表特定類別的觀測值的數量。
sns.countplot(x='species', data=data)
11、分簇散點圖
分簇散點圖與條形圖相似,但是它會修改一些點以防止重疊,這有助于更好地表示值的分布。在該圖中,每個數據點表示為一個點,并且這些點的排列使得它們在分類軸上不會相互重疊。
sns.swarmplot(x='sepal_width',y='species',data=data,hue='species',dodge=True,orient='h',size=8)
12、配對圖
配對圖可視化了數據集中幾個變量之間的成對關系。它創建了一個坐標軸網格,這樣所有數值數據點將在彼此之間創建一個圖,在x軸上具有單列,y軸上具有單行。對角線圖是單變量分布圖,它繪制了每列數據的邊際分布。
sns.set(rc = {"figure.figsize":(6,3)})
sns.pairplot(data=data,hue='species')
13、Facet Grid
Seaborn中的FacetGrid函數將數據集和一個或多個分類變量作為輸入,并創建一個圖表網格,每種類別變量的組合都有一個圖表。網格中的每個圖都可以定制為不同類型的圖,例如散點圖、直方圖或箱形圖。
g=sns.FacetGrid(data, col="species",height=4,hue='species')
g.map(sns.histplot, "petal_length")
14、聯合分布圖
聯合分布圖將兩個不同的圖組合在一個表示中,可以展示兩個變量之間的關系(二元關系)。
sns.jointplot(x="sepal_length", y="sepal_width", data=data,
palette='Set2',hue='species')
15、分類圖
cat圖(分類圖的縮寫)是Seaborn中的定制的一種圖,它可以可視化數據集中一個或多個分類變量與連續變量之間的關系。它可用于顯示分布、比較組或顯示不同變量之間的關系。
sns.catplot(data=data, x="petal_length", y="species", kind="violin", color=".9", inner=None)
sns.swarmplot(data=data, x="petal_length", y="species", size=3)
總結
Seaborn對于任何使用Python處理數據的人來說都是一個非常好用的工具,它易于使用,并且提供更美觀的圖形使其成為探索和交流數據最佳選擇。它與其他Python數據分析庫(如Pandas)的集成使其成為數據探索和可視化的強大工具。