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 參數選擇要使用的方法

此外,可以將 rugplot() 新增至任何類型的繪圖,以顯示個別觀察值。

額外的關鍵字引數會傳遞至底層函數,因此您應參考每個函數的文件,以了解使用此介面繪圖的完整選項集。

有關每種方法的相對優缺點,請參閱 分佈圖教學。有關圖形級和軸級函數之間的區別,請參閱 使用者指南 中的詳細說明。

參數:
datapandas.DataFramenumpy.ndarray、映射或序列

輸入資料結構。可以是可指派給具名變數的向量長格式集合,或是將在內部重新塑形的寬格式資料集。

x、ydata 中的向量或索引鍵

指定 x 和 y 軸位置的變數。

huedata 中的向量或索引鍵

用於決定繪圖元素顏色的語義變數。

row、coldata 中的向量或索引鍵

定義要在不同分面繪製的子集的變數。

weightsdata 中的向量或索引鍵

用於計算分佈函數的觀察權重。

kind{“hist”, “kde”, “ecdf”}

視覺化資料的方法。選取底層繪圖函數並決定其他有效參數集。

rugbool

如果為 True,則顯示具有邊際刻度的每個觀察值(如在 rugplot() 中)。

rug_kwsdict

控制粗糙圖外觀的參數。

log_scalebool 或數字,或一對 bool 或數字

將軸刻度設定為對數。單一值會設定繪圖中任何數值軸的資料軸。一對值會獨立設定每個軸。數值會解譯為所需的底數(預設值為 10)。當 NoneFalse 時,seaborn 會延遲至現有的軸刻度。

legendbool

如果為 False,則會隱藏語義變數的圖例。

palette字串、清單、字典或 matplotlib.colors.Colormap

選擇用於映射 hue 語義的顏色的方法。字串值會傳遞給 color_palette()。列表或字典值表示類別映射,而顏色映射物件則表示數值映射。

hue_order字串向量

指定 hue 語義的類別層級的處理和繪圖順序。

hue_norm元組或 matplotlib.colors.Normalize

一對用於設定數據單位中正規化範圍的值,或是一個將數據單位映射到 [0, 1] 區間的物件。此用法表示數值映射。

colormatplotlib color

當不使用 hue 映射時的單一顏色規格。否則,繪圖將嘗試掛鉤到 matplotlib 屬性循環。

col_wrap整數

在這個寬度「換行」列變數,使列分面跨越多行。與 row 分面不相容。

{row,col}_order字串向量

指定 row 和/或 col 變數的層級在子圖網格中出現的順序。

height純量

每個分面的高度(以英寸為單位)。另請參閱:aspect

aspect純量

每個分面的長寬比,因此 aspect * height 給出每個分面的寬度(以英寸為單位)。

facet_kws字典

傳遞給 FacetGrid 的其他參數。

kwargs

其他關鍵字參數在相關的軸層級函數中有說明

返回:
FacetGrid

一個管理一個或多個子圖的物件,這些子圖對應於條件數據子集,並具有用於批次設定軸屬性的便捷方法。

另請參閱

histplot

繪製帶有可選正規化或平滑的箱計數直方圖。

kdeplot

使用核密度估計繪製單變數或雙變數分佈。

rugplot

沿 x 和/或 y 軸在每個觀察值處繪製一個刻度。

ecdfplot

繪製經驗累積分布函數。

jointplot

繪製具有單變數邊緣分佈的雙變數圖。

範例

有關每個繪圖種類的可用選項範圍的更多詳細資訊,請參閱軸層級函數的 API 文件。

預設繪圖種類是直方圖

penguins = sns.load_dataset("penguins")
sns.displot(data=penguins, x="flipper_length_mm")
../_images/displot_1_0.png

使用 kind 參數選擇不同的表示法

sns.displot(data=penguins, x="flipper_length_mm", kind="kde")
../_images/displot_3_0.png

主要有三種繪圖種類;除了直方圖和核密度估計(KDE)之外,您還可以繪製經驗累積分布函數(ECDF)。

sns.displot(data=penguins, x="flipper_length_mm", kind="ecdf")
../_images/displot_5_0.png

在直方圖模式下,也可以新增 KDE 曲線

sns.displot(data=penguins, x="flipper_length_mm", kde=True)
../_images/displot_7_0.png

若要繪製雙變數圖,請同時指派 xy

sns.displot(data=penguins, x="flipper_length_mm", y="bill_length_mm")
../_images/displot_9_0.png

目前,雙變數圖僅適用於直方圖和 KDE

sns.displot(data=penguins, x="flipper_length_mm", y="bill_length_mm", kind="kde")
../_images/displot_11_0.png

對於每種繪圖種類,您也可以使用邊緣「地毯」顯示單獨的觀察值

g = sns.displot(data=penguins, x="flipper_length_mm", y="bill_length_mm", kind="kde", rug=True)
../_images/displot_13_0.png

可以使用 hue 映射為數據子集單獨繪製每種繪圖種類

sns.displot(data=penguins, x="flipper_length_mm", hue="species", kind="kde")
../_images/displot_15_0.png

其他關鍵字參數會傳遞到適當的底層繪圖函數,允許進一步自訂

sns.displot(data=penguins, x="flipper_length_mm", hue="species", multiple="stack")
../_images/displot_17_0.png

此圖是使用 FacetGrid 建立的,這表示您也可以在不同的子圖或「分面」上顯示子集

sns.displot(data=penguins, x="flipper_length_mm", hue="species", col="sex", kind="kde")
../_images/displot_19_0.png

因為此圖是使用 FacetGrid 繪製的,您可以使用 heightaspect 參數控制其大小和形狀

sns.displot(
    data=penguins, y="flipper_length_mm", hue="sex", col="species",
    kind="ecdf", height=4, aspect=.7,
)
../_images/displot_21_0.png

此函數會傳回帶有繪圖的 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")
../_images/displot_23_0.png