錯誤:seaborn Displot 未在子圖中繪圖
與 matplotlib 一起使用時,Seaborn displot 無法如預期生成並排圖。 pyplot.子圖。出現此錯誤的原因是 displot 是圖形級函數,缺少子圖所需的 'ax' 參數。
解決方案:
解決問題並顯示兩個圖在同一行上,有必要使用支援「ax」參數的適當軸級圖。在這種情況下,histplot 是首選。這是修正後的程式碼:
<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>
替代方法:
如果您喜歡使用displot,您可以使用pd.melt 將資料重組為長格式,並將displot 套用於轉換後的資料框。
<code class="python">dfl = X_train.melt(id_vars='passenger', value_vars=['Age', 'Fare'], var_name='category', value_name='value') sns.displot(data=dfl, x='value', col='category', hue='passenger')</code>
其他注意事項:
對於具有多個資料框的軸級圖,使用pd.concat 將它們組合起來並分配一個唯一的“來源」列用於識別每個資料點的來源。此列可用於 row=、col= 或 Hue=。
以上是為什麼 Seaborn Displot 不能與 Matplotlib 子圖一起使用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!