seaborn.boxenplot#
- seaborn.boxenplot(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, linewidth=None, linecolor=None, width_method='exponential', k_depth='tukey', outlier_prop=0.007, trust_alpha=0.05, showfliers=True, hue_norm=None, log_scale=None, native_scale=False, formatter=None, legend='auto', scale=<deprecated>, box_kws=None, flier_kws=None, line_kws=None, ax=None, **kwargs)#
為較大的資料集繪製增強的箱形圖。
這種繪圖風格最初被命名為「字母值」圖,因為它顯示了大量被定義為「字母值」的分位數。 它類似於箱形圖,以非參數方式表示分佈,其中所有特徵都對應於實際觀察值。 通過繪製更多分位數,它可以提供有關分佈形狀的更多信息,特別是在尾部。
有關更多資訊,請參閱教學。
注意
預設情況下,此函數將其中一個變數視為類別變數,並在相關軸上的序數位置(0、1、... n)繪製資料。 從 0.13.0 版本開始,可以通過設定
native_scale=True
來停用此功能。- 參數:
- dataDataFrame、Series、dict、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」或布林值
當使用色調映射時,是否應沿著 orient 軸縮小和移動元素以消除重疊。 如果為
"auto"
,當 orient 變數與類別變數交叉時,設定為True
,否則設定為False
。在版本 0.13.0 中變更: 新增
"auto"
模式作為新的預設值。- width浮點數
分配給 orient 軸上每個元素的寬度。 當
native_scale=True
時,它與原生比例中兩個值之間的最小距離相關。- gap浮點數
按此因數在 orient 軸上縮小,以在閃避元素之間新增間距。
在版本 0.13.0 中新增。
- linewidth浮點數
構成繪圖元素的線條寬度。
- linecolor顏色
當
fill
為 True 時,用於線條元素的顏色。在版本 v0.13.0 中新增。
- width_method{「exponential」、「linear」、「area」}
用於字母值方塊寬度的方法
"exponential"
:表示對應的百分位數"linear"
:每個箱形圖的寬度以固定量遞減"area"
:表示該箱形圖中數據點的密度
- k_depth{“tukey”, “proportion”, “trustworthy”, “full”} 或 int
在每個尾部計算和繪製的層級數量
"tukey"
:使用 log2(n) - 3 層,覆蓋與箱形圖鬚線相似的範圍"proportion"
:保留大約outlier_prop
個離群值"trusthworthy"
:延伸到置信度至少為trust_alpha
的層級"full"
:使用 log2(n) + 1 層,並延伸到最極端點
- outlier_propfloat
預期為離群值的數據比例;當
k_depth="proportion"
時使用。- trust_alphafloat
最極端層級的置信度閾值;當
k_depth="trustworthy"
時使用。- showfliersbool
如果為 False,則抑制離群值的繪圖。
- hue_normtuple 或
matplotlib.colors.Normalize
物件 當
hue
變數為數值時,應用於顏色映射的數據單位正規化。如果hue
是類別變數,則不相關。v0.12.0 版本新增。
- log_scalebool 或數字,或一對布林值或數字
將軸刻度設為對數刻度。單一值設定圖表中任何數值軸的資料軸。一對值則分別設定每個軸。數值會被解釋為所需的底數(預設為 10)。當
None
或False
時,seaborn 會延用現有的軸刻度。在版本 v0.13.0 中新增。
- native_scalebool
當為 True 時,類別軸上的數值或日期時間值將保持其原始刻度,而不是轉換為固定的索引。
在版本 v0.13.0 中新增。
- formattercallable
用於將類別數據轉換為字串的函數。會影響分組和刻度標籤。
在版本 v0.13.0 中新增。
- legend“auto”, “brief”, “full”, 或 False
如何繪製圖例。如果為 “brief”,則數值
hue
和size
變數將以均勻間隔的值樣本表示。如果為 “full”,則每個群組都會在圖例中獲得一個項目。如果為 “auto”,則根據層級數在 brief 或 full 表示之間選擇。如果為False
,則不會新增圖例數據,也不會繪製圖例。在版本 v0.13.0 中新增。
- box_kws: dict
箱形圖藝術家的關鍵字引數;傳遞給
matplotlib.patches.Rectangle
。v0.12.0 版本新增。
- line_kws: dict
表示中位數的線條的關鍵字引數;傳遞給
matplotlib.axes.Axes.plot()
。v0.12.0 版本新增。
- flier_kws: dict
表示離群值觀察的散佈圖的關鍵字引數;傳遞給
matplotlib.axes.Axes.scatter()
。v0.12.0 版本新增。
- axmatplotlib Axes
用於將圖表繪製到其上的 Axes 物件,否則使用目前的 Axes。
- kwargs鍵,值映射
其他關鍵字引數會傳遞給
matplotlib.patches.Rectangle
,並被box_kws
中的引數取代。
- 返回:
- axmatplotlib Axes
返回繪製了圖表的 Axes 物件。
另請參閱
violinplot
箱形圖和核密度估計的組合。
boxplot
具有相似 API 的傳統箱形圖和鬚線圖。
catplot
將類別圖與
FacetGrid
結合。
注意事項
如需更詳細的解釋,您可以閱讀介紹此圖表的論文:https://vita.had.co.nz/papers/letter-value-plot.html
範例
繪製單一水平圖表,將資料直接指定給坐標變數
sns.boxenplot(x=diamonds["price"])
依類別變數分組,參考數據框中的欄位
sns.boxenplot(data=diamonds, x="price", y="clarity")
依另一個變數分組,以箱形圖的顏色表示。預設情況下,每個箱形圖繪製都會「閃避」,以避免它們重疊;您也可以在它們之間新增一個小間隙
large_diamond = diamonds["carat"].gt(1).rename("large_diamond") sns.boxenplot(data=diamonds, x="price", y="clarity", hue=large_diamond, gap=.2)
選擇每個箱形圖寬度的預設規則表示該箱形圖覆蓋的百分位數。或者,您可以按線性因子縮減每個箱形圖的寬度
sns.boxenplot(data=diamonds, x="price", y="clarity", width_method="linear")
另一方面,
width
引數本身決定最大箱形圖的寬度sns.boxenplot(data=diamonds, x="price", y="clarity", width=.5)
選擇要繪製的箱形圖數量有幾種不同的方法,包括基於百分位數估計的信賴區間的規則
sns.boxenplot(data=diamonds, x="price", y="clarity", k_depth="trustworthy", trust_alpha=0.01)
linecolor
和linewidth
引數控制箱形圖的輪廓,而line_kws
引數控制表示中位數的線條,flier_kws
引數控制離群值的外觀sns.boxenplot( data=diamonds, x="price", y="clarity", linewidth=.5, linecolor=".7", line_kws=dict(linewidth=1.5, color="#cde"), flier_kws=dict(facecolor=".7", linewidth=.5), )
也可以繪製未填滿的箱形圖。使用未填滿的箱形圖時,所有元素都將繪製為線條圖,並在使用的情況下遵循
hue
sns.boxenplot(data=diamonds, x="price", y="clarity", hue="clarity", fill=False)