seaborn.displot#
- seaborn.displot(data=None, *, x=None, y=None, hue=None, row=None, col=None, weights=None, kind='hist', rug=False, rug_kws=None, log_scale=None, legend=True, palette=None, hue_order=None, hue_norm=None, color=None, col_wrap=None, row_order=None, col_order=None, height=5, aspect=1, facet_kws=None, **kwargs)#
用於在 FacetGrid 上繪製分佈圖的圖形級介面。
此函數提供多種方法來視覺化資料的單變數或雙變數分佈,包括由語義映射定義的資料子集,以及跨多個子圖進行分面。
kind
參數選擇要使用的方法histplot()
(使用kind="hist"
;預設值)kdeplot()
(使用kind="kde"
)ecdfplot()
(使用kind="ecdf"
;僅限單變數)
此外,可以將
rugplot()
新增至任何類型的繪圖,以顯示個別觀察值。額外的關鍵字引數會傳遞至底層函數,因此您應參考每個函數的文件,以了解使用此介面繪圖的完整選項集。
有關每種方法的相對優缺點,請參閱 分佈圖教學。有關圖形級和軸級函數之間的區別,請參閱 使用者指南 中的詳細說明。
- 參數:
- data
pandas.DataFrame
、numpy.ndarray
、映射或序列 輸入資料結構。可以是可指派給具名變數的向量長格式集合,或是將在內部重新塑形的寬格式資料集。
- x、y
data
中的向量或索引鍵 指定 x 和 y 軸位置的變數。
- hue
data
中的向量或索引鍵 用於決定繪圖元素顏色的語義變數。
- row、col
data
中的向量或索引鍵 定義要在不同分面繪製的子集的變數。
- weights
data
中的向量或索引鍵 用於計算分佈函數的觀察權重。
- kind{“hist”, “kde”, “ecdf”}
視覺化資料的方法。選取底層繪圖函數並決定其他有效參數集。
- rugbool
如果為 True,則顯示具有邊際刻度的每個觀察值(如在
rugplot()
中)。- rug_kwsdict
控制粗糙圖外觀的參數。
- log_scalebool 或數字,或一對 bool 或數字
將軸刻度設定為對數。單一值會設定繪圖中任何數值軸的資料軸。一對值會獨立設定每個軸。數值會解譯為所需的底數(預設值為 10)。當
None
或False
時,seaborn 會延遲至現有的軸刻度。- legendbool
如果為 False,則會隱藏語義變數的圖例。
- palette字串、清單、字典或
matplotlib.colors.Colormap
選擇用於映射
hue
語義的顏色的方法。字串值會傳遞給color_palette()
。列表或字典值表示類別映射,而顏色映射物件則表示數值映射。- hue_order字串向量
指定
hue
語義的類別層級的處理和繪圖順序。- hue_norm元組或
matplotlib.colors.Normalize
一對用於設定數據單位中正規化範圍的值,或是一個將數據單位映射到 [0, 1] 區間的物件。此用法表示數值映射。
- color
matplotlib color
當不使用 hue 映射時的單一顏色規格。否則,繪圖將嘗試掛鉤到 matplotlib 屬性循環。
- col_wrap整數
在這個寬度「換行」列變數,使列分面跨越多行。與
row
分面不相容。- {row,col}_order字串向量
指定
row
和/或col
變數的層級在子圖網格中出現的順序。- height純量
每個分面的高度(以英寸為單位)。另請參閱:
aspect
。- aspect純量
每個分面的長寬比,因此
aspect * height
給出每個分面的寬度(以英寸為單位)。- facet_kws字典
傳遞給
FacetGrid
的其他參數。- kwargs
其他關鍵字參數在相關的軸層級函數中有說明
histplot()
(使用kind="hist"
)kdeplot()
(使用kind="kde"
)ecdfplot()
(使用kind="ecdf"
)
- data
- 返回:
FacetGrid
一個管理一個或多個子圖的物件,這些子圖對應於條件數據子集,並具有用於批次設定軸屬性的便捷方法。
另請參閱
範例
有關每個繪圖種類的可用選項範圍的更多詳細資訊,請參閱軸層級函數的 API 文件。
預設繪圖種類是直方圖
penguins = sns.load_dataset("penguins") sns.displot(data=penguins, x="flipper_length_mm")
使用
kind
參數選擇不同的表示法sns.displot(data=penguins, x="flipper_length_mm", kind="kde")
主要有三種繪圖種類;除了直方圖和核密度估計(KDE)之外,您還可以繪製經驗累積分布函數(ECDF)。
sns.displot(data=penguins, x="flipper_length_mm", kind="ecdf")
在直方圖模式下,也可以新增 KDE 曲線
sns.displot(data=penguins, x="flipper_length_mm", kde=True)
若要繪製雙變數圖,請同時指派
x
和y
sns.displot(data=penguins, x="flipper_length_mm", y="bill_length_mm")
目前,雙變數圖僅適用於直方圖和 KDE
sns.displot(data=penguins, x="flipper_length_mm", y="bill_length_mm", kind="kde")
對於每種繪圖種類,您也可以使用邊緣「地毯」顯示單獨的觀察值
g = sns.displot(data=penguins, x="flipper_length_mm", y="bill_length_mm", kind="kde", rug=True)
可以使用
hue
映射為數據子集單獨繪製每種繪圖種類sns.displot(data=penguins, x="flipper_length_mm", hue="species", kind="kde")
其他關鍵字參數會傳遞到適當的底層繪圖函數,允許進一步自訂
sns.displot(data=penguins, x="flipper_length_mm", hue="species", multiple="stack")
此圖是使用
FacetGrid
建立的,這表示您也可以在不同的子圖或「分面」上顯示子集sns.displot(data=penguins, x="flipper_length_mm", hue="species", col="sex", kind="kde")
因為此圖是使用
FacetGrid
繪製的,您可以使用height
和aspect
參數控制其大小和形狀sns.displot( data=penguins, y="flipper_length_mm", hue="sex", col="species", kind="ecdf", height=4, aspect=.7, )
此函數會傳回帶有繪圖的
FacetGrid
物件,您可以使用此物件上的方法進一步自訂它g = sns.displot( data=penguins, y="flipper_length_mm", hue="sex", col="species", kind="kde", height=4, aspect=.7, ) g.set_axis_labels("Density (a.u.)", "Flipper length (mm)") g.set_titles("{col_name} penguins")