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 的列表
用於繪圖的資料集。如果沒有
x
和y
,則會將其解讀為寬格式。否則,它應為長格式。- x, y, hue
data
中的變數名稱或向量資料 用於繪製長格式資料的輸入。請參閱範例以了解如何解讀。
- order, hue_order字串列表
繪製類別層級的順序;否則層級會從資料物件中推斷。
- orient“v” | “h” | “x” | “y”
繪圖的方向(垂直或水平)。這通常是根據輸入變數的類型推斷出來的,但當
x
和y
都是數值或繪製寬格式資料時,可以用於解決歧義。在 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)。當
None
或False
時,seaborn 會延遲使用現有的軸尺度。在 v0.13.0 版本中新增。
- native_scale布林值
當為 True 時,類別軸上的數值或日期時間值將保持其原始尺度,而不是轉換為固定的索引。
在 v0.13.0 版本中新增。
- formatter可呼叫物件
將類別資料轉換為字串的函式。影響分組和刻度標籤。
在 v0.13.0 版本中新增。
- legend“auto”、“brief”、“full” 或 False
如何繪製圖例。如果為 “brief”,數值
hue
和size
變數將以均勻間隔的值樣本表示。如果為 “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"])
依類別變數分組,參考資料框架中的欄位
sns.boxplot(data=titanic, x="age", y="class")
繪製一個垂直箱形圖,其中兩個變數進行巢狀分組
sns.boxplot(data=titanic, x="class", y="age", hue="alive")
將箱形圖繪製為線條藝術,並在它們之間新增一個小間隙
sns.boxplot(data=titanic, x="class", y="age", hue="alive", fill=False, gap=.1)
以鬚線涵蓋資料的完整範圍
sns.boxplot(data=titanic, x="age", y="deck", whis=(0, 100))
繪製較窄的箱形圖
sns.boxplot(data=titanic, x="age", y="deck", width=.5)
修改所有線條藝術家的顏色和寬度
sns.boxplot(data=titanic, x="age", y="deck", color=".8", linecolor="#137", linewidth=.75)
依數值變數分組並保留其原始尺度
ax = sns.boxplot(x=titanic["age"].round(-1), y=titanic["fare"], native_scale=True) ax.axvline(25, color=".3", dashes=(2, 2))
使用底層 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}, )