Multi-Plot Grids
Table of Contents
Statistik Deskriptif dengan Python - This article is part of a series.
Multi-plot grids adalah alat yang sangat efektif untuk membandingkan beberapa plot sekaligus dan mendapatkan pemahaman yang lebih mendalam tentang hubungan di dalam dataset. Seaborn menyediakan beberapa fungsi yang memungkinkan kita untuk membuat grid plot yang informatif.
A. Pair Grids #
Pair Grid adalah cara untuk membuat grid dari semua pasangan variabel dalam dataset dan membuat plot yang berbeda di setiap sel. Ini memadukan scatter plots untuk variabel numerik dan histogram untuk variabel kategorikal.
import seaborn as sns
import matplotlib.pyplot as plt
# Menggunakan dataframe iris_df dari materi pendahuluan
pair_grid = sns.PairGrid(iris_df, hue="species")
pair_grid.map_upper(sns.scatterplot)
pair_grid.map_lower(sns.kdeplot)
pair_grid.map_diag(sns.histplot, kde_kws={'color': 'k'})
plt.suptitle("Pair Grid untuk Seluruh Variabel Berdasarkan Spesies", y=1.02)
plt.show()
Hasilnya:
Penjelasan:
sns.PairGrid
: Inisialisasi Pair Grid dengan dataframe iris_df dan menggunakan warna berdasarkan kolom ‘species’.map_upper(sns.scatterplot)
: Diagonal atas dari grid akan berisi scatter plots untuk setiap pasangan variabel numerik.map_lower(sns.kdeplot)
: Diagonal bawah akan berisi KDE plots untuk distribusi variabel numerik.map_diag(sns.histplot, kde_kws={'color': 'k'})
: Diagonal akan berisi histogram dan KDE plot untuk variabel numerik.
Pair Grid memberikan visualisasi yang kaya dengan scatter plots di bagian atas, distribusi variabel pada diagonal, dan KDE plots di bagian bawah.
B. Joint Plot #
Joint Plot memungkinkan kita untuk memadukan dua plot dalam satu grid. Ini sangat berguna untuk mengeksplorasi hubungan antara dua variabel numerik dan melihat distribusi keduanya sekaligus.
import seaborn as sns
import matplotlib.pyplot as plt
# Menggunakan dataframe iris_df dari materi pendahuluan
sns.jointplot(x="sepal length (cm)", y="sepal width (cm)", data=iris_df, kind="reg")
plt.suptitle("Joint Plot untuk Hubungan antara Sepal Length dan Sepal Width", y=1.02)
plt.show()
Hasilnya:
Penjelasan:
sns.jointplot
: Membuat plot bersamaan (joint plot) untuk menunjukkan hubungan antara ‘sepal length’ dan ‘sepal width’.x
dany
: Variabel yang akan diplot.kind="reg"
: Menambahkan garis regresi pada scatter plot.
Dengan parameter kind="reg"
, kita dapat menambahkan garis regresi pada scatter plot untuk memberikan gambaran lebih lanjut tentang hubungan.
C. Facet Grid #
Facet Grid memungkinkan kita untuk membuat grid plot berdasarkan kategori tertentu. Ini berguna untuk membandingkan distribusi atau hubungan antar variabel dalam subset data.
import seaborn as sns
import matplotlib.pyplot as plt
# Menggunakan dataframe iris_df dari materi pendahuluan
facet_grid = sns.FacetGrid(iris_df, col="species", hue="species")
facet_grid.map(sns.scatterplot, "sepal length (cm)", "sepal width (cm)")
facet_grid.add_legend()
plt.suptitle("Facet Grid untuk Scatter Plot Sepal Length vs Sepal Width Berdasarkan Spesies", y=1.02)
plt.savefig("assets/images/seaborn_facet_grid.jpg")
plt.show()
Hasilnya:
Penjelasan:
sns.FacetGrid
: Inisialisasi Facet Grid dengan dataframe iris_df dan menggunakan warna berdasarkan kolom ‘species’.col="species"
: Membuat subplot berdasarkan nilai dalam kolom ‘species’.map(sns.scatterplot, "sepal length (cm)", "sepal width (cm)")
: Membuat scatter plot untuk setiap kategori.add_legend()
: Menambahkan legenda berdasarkan warna ‘species’.
Facet Grid memisahkan plot berdasarkan nilai pada kolom tertentu (dalam hal ini, spesies), memudahkan kita untuk membandingkan hubungan antara variabel dalam setiap kategori.