ホームページ >バックエンド開発 >Python チュートリアル >Seaborn Displot が Matplotlib サブプロットで動作しないのはなぜですか?
エラー: seaborn Displot がサブプロット内にプロットされない
Seaborn displot を matplotlib と一緒に使用すると、期待どおりに並列プロットを生成できません。 pyplot.subplots。このエラーは、displot がサブプロットに必要な 'ax' パラメータを欠いている Figure レベルの関数であるために発生します。
解決策:
問題を解決して 2 つのプロットを表示するには同じ行で、「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 中国語 Web サイトの他の関連記事を参照してください。