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