Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Seaborn Displot Tidak Berfungsi dengan Subplot Matplotlib?

Mengapa Seaborn Displot Tidak Berfungsi dengan Subplot Matplotlib?

Barbara Streisand
Barbara Streisandasal
2024-10-29 06:33:30989semak imbas

Why Doesn't Seaborn Displot Work with Matplotlib Subplots?

Ralat: Displot seaborn Tidak Memplot Dalam Subplot

Displot Seaborn gagal menjana plot bersebelahan seperti yang dijangkakan apabila digunakan dengan matplotlib. pyplot.subplots. Ralat ini timbul kerana displot ialah fungsi peringkat angka yang tidak mempunyai parameter 'ax' yang diperlukan untuk subplot.

Penyelesaian:

Untuk menyelesaikan isu dan memaparkan dua plot pada baris yang sama, adalah perlu untuk menggunakan plot aras paksi yang sesuai yang menyokong parameter 'kapak'. Dalam kes ini, histplot ialah pilihan pilihan. Berikut ialah kod yang diperbetulkan:

<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>

Pendekatan Alternatif:

Jika anda lebih suka menggunakan displot, anda boleh menyusun semula data anda ke dalam format yang panjang menggunakan pd.melt dan gunakan displot pada bingkai data yang diubah.

<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>

Pertimbangan Tambahan:

Untuk plot peringkat paksi dengan berbilang bingkai data, gunakan pd.concat untuk menggabungkannya dan tetapkan lajur 'sumber' unik untuk mengenal pasti asal setiap titik data. Lajur ini kemudiannya boleh digunakan untuk row=, col=, atau hue=.

Atas ialah kandungan terperinci Mengapa Seaborn Displot Tidak Berfungsi dengan Subplot Matplotlib?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn