Seaborn 箱線圖

Manav Narula 2021年10月2日 2021年7月16日
Seaborn 箱線圖

可以使用 Python 中的 seaborn 模組建立不同的統計圖表。我們可以使用 seaborn.boxplot() 函式建立一個箱線圖。

分析師和統計學家經常使用箱線圖來表示不同級別或類別的資料。箱線圖可以傳達許多統計值。下圖說明了這一點。

箱線圖資訊

boxplot() 函式可以有效地繪製資料集的分類值,也可以處理單個列表或陣列向量。它與小提琴圖非常相似。

在下面的例子中,我們繪製了一個單一分佈的箱線圖,以瞭解最終的數字。

import random 
import numpy as np
import seaborn as sns

n = random.sample(range(0,50),30) 
arr = np.array(n)
sns.boxplot(n)

單變數箱線圖

我們還可以在箱線圖上繪製散點圖。它將讓你更好地瞭解繪製的分佈和最終數字。

我們將使用 seaborn.stripplot() 函式來繪製散點圖。例如,

import random 
import numpy as np
import seaborn as sns

n = random.sample(range(0,50),30) 
arr = np.array(n)
sns.boxplot(n)
sns.stripplot(n, color = 'red')

箱線圖上的帶狀圖

箱線圖可以有效地用於繪製分類變數並使它們的比較變得簡單。在以下程式碼中,我們將繪製多個類別的箱線圖。

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame({"Quantity": [5,6,7,8,5,6,7,8,5,6,7,8,5,6,7,8],
                   "Price": [9,10,15,16,13,14,15,18,11,12,14,15,16,17,18,19],
                   "Day" : [1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2],
                   "Product": ['A','A','A','A','B','B','B','B',
                              'A','A','A','A','B','B','B','B']})

sns.boxplot(data = df, y = "Price", x = "Quantity")

分類資料的箱線圖

注意在上面的資料集中,我們可以輕鬆地比較不同數量的價格。我們還可以新增 hue 引數並將其值設定為 Product 變數。這樣,我們將能夠為不同的產品繪製不同的框。

我們可以使用 matplotlib.pyplot.ylim()matplotlib.pyplot.xlim() 來設定圖的 x 和 y 軸的限制。

我們可以使用更多引數來調整最終圖。linewidth 引數可用於增加箱線圖邊界的厚度。我們可以使用 palette 引數為不同類別自定義顏色。可以使用 orient 引數更改方向。還有更多這樣的引數可以使用。

請參考下面的程式碼以瞭解其中一些引數的應用。

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame({"Quantity": [5,6,7,8,5,6,7,8,5,6,7,8,5,6,7,8],
                   "Price": [9,10,15,16,13,14,15,18,11,12,14,15,16,17,18,19],
                   "Day" : [1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2],
                   "Product": ['A','A','A','A','B','B','B','B',
                              'A','A','A','A','B','B','B','B']})

sns.boxplot(data = df, y = "Price", x = "Quantity", hue = 'Product', linewidth = 2.5 , palette = 'Set2')

帶引數的多列的箱線圖

我們還可以使用 catplot() 函式來建立箱線圖。catplot() 函式非常適合繪製分類值。要使用此函式建立箱線圖,我們需要將 catplot() 函式中的 kind 引數的值指定為 box

Author: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn