seaborn.boxplot#

seaborn.boxplot(data=None, *, x=None, y=None, hue=None, order=None, hue_order=None, orient=None, color=None, palette=None, saturation=0.75, fill=True, dodge='auto', width=0.8, gap=0, whis=1.5, linecolor='auto', linewidth=None, fliersize=None, hue_norm=None, native_scale=False, log_scale=None, formatter=None, legend='auto', ax=None, **kwargs)#

繪製箱形圖以顯示相對於類別的分佈。

箱形圖(或稱盒鬚圖)以一種有助於比較變數之間或類別變數不同層級之間的方式,顯示量化資料的分佈。箱形顯示資料集的四分位數,而鬚線延伸以顯示分佈的其餘部分,除了使用四分位距函數方法判斷為「離群值」的點之外。

請參閱教學以了解更多資訊。

注意

預設情況下,此函數將其中一個變數視為類別變數,並在相關軸上的序數位置 (0, 1, ... n) 繪製資料。從 0.13.0 版本開始,可以透過設定 native_scale=True 來停用此功能。

參數:
dataDataFrame、Series、dict、array 或 array 的列表

用於繪圖的資料集。如果沒有 xy,則會將其解讀為寬格式。否則,它應為長格式。

x, y, huedata 中的變數名稱或向量資料

用於繪製長格式資料的輸入。請參閱範例以了解如何解讀。

order, hue_order字串列表

繪製類別層級的順序;否則層級會從資料物件中推斷。

orient“v” | “h” | “x” | “y”

繪圖的方向(垂直或水平)。這通常是根據輸入變數的類型推斷出來的,但當 xy 都是數值或繪製寬格式資料時,可以用於解決歧義。

在 v0.13.0 版本中變更:新增 'x'/'y' 作為選項,相當於 'v'/'h'。

colormatplotlib 色彩

繪圖中元素的單一色彩。

palette調色盤名稱、列表或字典

用於 hue 變數不同層級的色彩。應該是 color_palette() 可以解讀的內容,或是一個將色調層級對應到 matplotlib 色彩的字典。

saturation浮點數

繪製填滿色彩時,原始飽和度的比例。大的色塊通常使用不飽和的色彩看起來會更好,但如果您希望色彩完全符合輸入值,請將此值設定為 1

fill布林值

如果為 True,則使用實心色塊。否則,繪製為線條圖。

在 v0.13.0 版本中新增。

dodge「auto」或布林值

當使用色調映射時,元素是否應沿著方向軸縮窄並移動以消除重疊。如果為 "auto",則當方向變數與類別變數交叉時設定為 True,否則設定為 False

在 0.13.0 版本中變更:"auto" 模式新增為新的預設值。

width浮點數

在方向軸上分配給每個元素的寬度。當 native_scale=True 時,它相對於原生刻度中兩個值之間的最小距離。

gap浮點數

在此因素下沿著方向軸收縮,以在閃避元素之間新增間隙。

在 0.13.0 版本中新增。

whis浮點數或浮點數的配對

控制鬚線長度的參數。如果為純量,則鬚線會繪製到距離最近的鉸鏈 whis * IQR 範圍內最遠的資料點。如果為元組,則會將其解讀為鬚線代表的百分位數。

linecolor色彩

fill 為 True 時,用於線條元素的色彩。

在 v0.13.0 版本中新增。

linewidth浮點數

框住繪圖元素的線條寬度。

fliersize浮點數

用於指示離群值觀察結果的標記大小。

hue_norm元組或 matplotlib.colors.Normalize 物件

hue 變數為數值時,應用於顏色映射的資料單位正規化。如果 hue 是類別型,則不相關。

v0.12.0 版本新增。

log_scale布林值或數字,或布林值或數字的配對

設定軸的尺度為對數。單一值會設定繪圖中任何數值軸的資料軸。一對值會分別設定每個軸。數值會被解釋為所需的底數(預設為 10)。當 NoneFalse 時,seaborn 會延遲使用現有的軸尺度。

在 v0.13.0 版本中新增。

native_scale布林值

當為 True 時,類別軸上的數值或日期時間值將保持其原始尺度,而不是轉換為固定的索引。

在 v0.13.0 版本中新增。

formatter可呼叫物件

將類別資料轉換為字串的函式。影響分組和刻度標籤。

在 v0.13.0 版本中新增。

legend“auto”、“brief”、“full” 或 False

如何繪製圖例。如果為 “brief”,數值 huesize 變數將以均勻間隔的值樣本表示。如果為 “full”,則每個群組都會在圖例中取得一個項目。如果為 “auto”,則會根據層級數量在 brief 或 full 表示之間選擇。如果為 False,則不會新增圖例資料,也不會繪製圖例。

在 v0.13.0 版本中新增。

axmatplotlib 軸物件

要將繪圖繪製到其上的軸物件,否則使用目前的軸。

kwargs鍵,值對應

其他關鍵字參數會傳遞給 matplotlib.axes.Axes.boxplot()

回傳值:
axmatplotlib 軸物件

回傳繪製了圖形的軸物件。

另請參閱

violinplot

箱形圖和核密度估計的組合。

stripplot

一個變數為類別型的散佈圖。可以與其他繪圖結合使用,以顯示每個觀測值。

swarmplot

一個點不重疊的類別散佈圖。可以與其他繪圖一起使用以顯示每個觀測值。

catplot

將類別繪圖與 FacetGrid 結合。

範例

繪製單一水平箱形圖,將資料直接指派給座標變數

sns.boxplot(x=titanic["age"])
../_images/boxplot_1_0.png

依類別變數分組,參考資料框架中的欄位

sns.boxplot(data=titanic, x="age", y="class")
../_images/boxplot_3_0.png

繪製一個垂直箱形圖,其中兩個變數進行巢狀分組

sns.boxplot(data=titanic, x="class", y="age", hue="alive")
../_images/boxplot_5_0.png

將箱形圖繪製為線條藝術,並在它們之間新增一個小間隙

sns.boxplot(data=titanic, x="class", y="age", hue="alive", fill=False, gap=.1)
../_images/boxplot_7_0.png

以鬚線涵蓋資料的完整範圍

sns.boxplot(data=titanic, x="age", y="deck", whis=(0, 100))
../_images/boxplot_9_0.png

繪製較窄的箱形圖

sns.boxplot(data=titanic, x="age", y="deck", width=.5)
../_images/boxplot_11_0.png

修改所有線條藝術家的顏色和寬度

sns.boxplot(data=titanic, x="age", y="deck", color=".8", linecolor="#137", linewidth=.75)
../_images/boxplot_13_0.png

依數值變數分組並保留其原始尺度

ax = sns.boxplot(x=titanic["age"].round(-1), y=titanic["fare"], native_scale=True)
ax.axvline(25, color=".3", dashes=(2, 2))
../_images/boxplot_15_0.png

使用底層 matplotlib 函式的參數自訂繪圖

sns.boxplot(
    data=titanic, x="age", y="class",
    notch=True, showcaps=False,
    flierprops={"marker": "x"},
    boxprops={"facecolor": (.3, .5, .7, .5)},
    medianprops={"color": "r", "linewidth": 2},
)
../_images/boxplot_17_0.png