首頁  >  文章  >  後端開發  >  為什麼 Seaborn.displot() 不會建立並排直方圖?

為什麼 Seaborn.displot() 不會建立並排直方圖?

Barbara Streisand
Barbara Streisand原創
2024-10-31 03:29:30750瀏覽

Why Won't Seaborn.displot() Create Side-by-Side Histograms?

seaborn.displot 未在定義的子圖中繪製

使用seaborn.displot() 建立兩個並排直方圖時,您可能會遇到意想不到的結果其中圖分別呈現在不同的線上。此行為不同於其他 seaborn 函數,如 violinplot() ,後者會產生預期的並排圖。

棄用seaborn.distplot()

造成這種差異的原因在於版本 0.11 中棄用了seaborn.distplot。它已被替換為:

  • displot():圖形級函數,提供繪圖類型的靈活性,但缺少 ax 參數,使其與 matplotlib.pyplot.subplots 不相容。
  • histplot():專為直方圖設計的軸級函數,包括核密度平滑,它有 ax 參數,可以與 matplotlib.pyplot.subplots 一起使用。

解決方案:使用seaborn .histplot()

要解決該問題並獲得所需的並排直方圖,請將 displot() 替換為 histplot()。此函數支援 ax 參數,可讓您指定要渲染繪圖的軸。

<code class="python">import seaborn as sns
import matplotlib.pyplot as plt

fig, (ax1, ax2) = plt.subplots(1, 2)

sns.histplot(x=X_train['Age'], hue=y_train, ax=ax1)
sns.histplot(x=X_train['Fare'], hue=y_train, ax=ax2)</code>

處理多個資料幀

使用多個資料幀時,您可以使用組合它們pd.concat 並新增一個新的「來源」欄位來識別資料來源。然後,該列可用於 row=、col= 或 Hue= 參數。

以上是為什麼 Seaborn.displot() 不會建立並排直方圖?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn