seaborn.lmplot#

seaborn.lmplot(data, *, x=None, y=None, hue=None, col=None, row=None, palette=None, col_wrap=None, height=5, aspect=1, markers='o', sharex=None, sharey=None, hue_order=None, col_order=None, row_order=None, legend=True, legend_out=None, x_estimator=None, x_bins=None, x_ci='ci', scatter=True, fit_reg=True, ci=95, n_boot=1000, units=None, seed=None, order=1, logistic=False, lowess=False, robust=False, logx=False, x_partial=None, y_partial=None, truncate=True, x_jitter=None, y_jitter=None, scatter_kws=None, line_kws=None, facet_kws=None)#

在 FacetGrid 上繪製數據和回歸模型擬合。

此函數結合了 regplot()FacetGrid。它旨在作為一個方便的介面,在數據集的條件子集上擬合回歸模型。

在考慮如何將變數分配到不同的 facet 時,一個通用規則是使用 hue 進行最重要的比較,然後是 colrow。但是,請始終考慮您的特定數據集和您正在建立的視覺化的目標。

有許多相互排斥的選項可用於估計回歸模型。有關更多資訊,請參閱教學

此函數的參數涵蓋了 FacetGrid 中的大多數選項,儘管在某些情況下,您可能需要直接使用該類別和 regplot()

參數:
dataDataFrame

整潔的(「長格式」)資料框架,其中每欄是一個變數,每一列是一個觀察值。

x, y字串,選用

輸入變數;這些應該是 data 中的欄名稱。

hue, col, row字串

定義資料子集的變數,這些子集將繪製在網格中的單獨 facet 上。請參閱 *_order 參數來控制此變數的層級順序。

palette調色盤名稱、清單或字典

用於 hue 變數不同層級的顏色。應該是可以使用 color_palette() 解釋的內容,或將 hue 層級對應到 matplotlib 顏色的字典。

col_wrapint

在此寬度處「包裝」欄變數,以便欄 facet 跨越多列。與 row facet 不相容。

height純量

每個 facet 的高度(以英吋為單位)。另請參閱:aspect

aspect純量

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

markersmatplotlib 標記程式碼或標記程式碼清單,選用

散佈圖的標記。如果是一個列表,列表中的每個標記將用於 hue 變數的每個層級。

share{x,y}bool、'col' 或 'row',選填

如果為 true,則分面將在各列之間共享 y 軸,和/或在各行之間共享 x 軸。

自 0.12.0 版本起已棄用:請使用 facet_kws 字典傳遞。

{hue,col,row}_order列表,選填

分面變數層級的順序。預設情況下,這將是層級在 data 中出現的順序,或者,如果變數是 pandas 的類別型,則為類別順序。

legendbool,選填

如果 True 且存在 hue 變數,則新增圖例。

legend_outbool

如果 True,則會擴展圖形大小,並且圖例將繪製在繪圖外部的中心右側。

自 0.12.0 版本起已棄用:請使用 facet_kws 字典傳遞。

x_estimator將向量對應到純量的可呼叫函數,選填

將此函數應用於 x 的每個唯一值,並繪製產生的估計值。當 x 是離散變數時,這很有用。如果指定了 x_ci,則將對此估計值進行自舉取樣,並繪製信賴區間。

x_bins整數或向量,選填

x 變數分組到離散的箱子中,然後估計中心趨勢和信賴區間。此分箱僅影響散佈圖的繪製方式;迴歸仍然適用於原始資料。此參數被解讀為等大小(不必等距)箱子的數量或箱子中心的位置。當使用此參數時,它表示 x_estimator 的預設值為 numpy.mean

x_ci“ci”、“sd”、[0, 100] 中的整數或 None,選填

繪製 x 離散值中心趨勢時所使用的信賴區間大小。如果為 "ci",則遵從 ci 參數的值。如果為 "sd",則跳過自舉取樣,並顯示每個箱子中觀測值的標準差。

scatterbool,選填

如果 True,則繪製具有基礎觀測值(或 x_estimator 值)的散佈圖。

fit_regbool,選填

如果 True,則估計並繪製與 xy 變數相關的迴歸模型。

ci[0, 100] 中的整數或 None,選填

迴歸估計值的信賴區間大小。這將使用迴歸線周圍的半透明帶繪製。信賴區間是使用自舉取樣估計的;對於大型資料集,建議將此參數設定為 None 以避免該計算。

n_boot整數,選填

用於估計 ci 的自舉重新取樣次數。預設值嘗試平衡時間和穩定性;對於繪圖的「最終」版本,您可能需要增加此值。

unitsdata 中的變數名稱,選填

如果 xy 觀測值嵌套在抽樣單元內,則可以在此處指定這些單元。這將在計算信賴區間時納入考量,方法是執行對單元和觀測值(在單元內)重新取樣的多層自舉取樣。這不會以其他方式影響迴歸的估計或繪製方式。

seed整數、numpy.random.Generator 或 numpy.random.RandomState,選填

用於可重現自舉取樣的種子或隨機數產生器。

order整數,選填

如果 order 大於 1,則使用 numpy.polyfit 來估計多項式迴歸。

logisticbool,選填

如果 True,則假設 y 是二元變數,並使用 statsmodels 來估計邏輯迴歸模型。請注意,這比線性迴歸在計算上密集得多,因此您可能希望減少自舉重新取樣的次數 (n_boot) 或將 ci 設定為 None。

lowessbool,選填

如果 True,則使用 statsmodels 來估計非參數 lowess 模型(局部加權線性迴歸)。請注意,目前無法為此類模型繪製信賴區間。

robustbool,選填

如果 True,則使用 statsmodels 來估計穩健迴歸。這將降低離群值的權重。請注意,這比標準線性迴歸在計算上密集得多,因此您可能希望減少自舉重新取樣的次數 (n_boot) 或將 ci 設定為 None。

logxbool,選填

如果 True,則估計 y ~ log(x) 形式的線性迴歸,但在輸入空間中繪製散佈圖和迴歸模型。請注意,x 必須為正值才能正常運作。

{x,y}_partialdata 中的字串或矩陣

在繪製之前,要從 xy 變數中迴歸出去的干擾變數。

truncatebool,選填

如果 True,則迴歸線將以資料限制為界。如果 False,則會延伸至 x 軸限制。

{x,y}_jitter浮點數,選填

將此大小的均勻隨機雜訊新增至 xy 變數。雜訊會在擬合迴歸後新增至資料副本,且僅影響散佈圖的外觀。當繪製採用離散值的變數時,這會很有幫助。

{scatter,line}_kws字典

要傳遞給 plt.scatterplt.plot 的其他關鍵字引數。

facet_kws字典

用於 FacetGrid 的關鍵字引數字典。

另請參閱

regplot

繪製資料和條件模型擬合。

FacetGrid

用於繪製條件關係的子圖網格。

pairplot

結合 regplot()PairGrid (當與 kind="reg" 一起使用時)。

注意事項

regplot()lmplot() 函數密切相關,但前者是軸級函數,而後者是圖級函數,它結合了 regplot()FacetGrid

範例

請參閱 regplot() 文件,以示範指定迴歸模型的各種選項,此處也接受這些選項。

在散佈圖上繪製迴歸擬合

sns.lmplot(data=penguins, x="bill_length_mm", y="bill_depth_mm")
../_images/lmplot_2_0.png

根據另一個變數調整迴歸擬合,並使用顏色表示

sns.lmplot(data=penguins, x="bill_length_mm", y="bill_depth_mm", hue="species")
../_images/lmplot_4_0.png

根據另一個變數調整迴歸擬合,並在子圖之間分割

sns.lmplot(
    data=penguins, x="bill_length_mm", y="bill_depth_mm",
    hue="species", col="sex", height=4,
)
../_images/lmplot_6_0.png

使用欄和列來調整兩個變數

sns.lmplot(
    data=penguins, x="bill_length_mm", y="bill_depth_mm",
    col="species", row="sex", height=3,
)
../_images/lmplot_8_0.png

允許軸限制在子圖之間變化

sns.lmplot(
    data=penguins, x="bill_length_mm", y="bill_depth_mm",
    col="species", row="sex", height=3,
    facet_kws=dict(sharex=False, sharey=False),
)
../_images/lmplot_10_0.png