Plot Sebaran dan Plot Pasangan
Buat plot sebaran yang diwarnai berdasarkan variabel ketiga dengan sns.scatterplot dan visualisasikan semua hubungan berpasangan dengan sns.pairplot.
Plot Sebaran dan Plot Pasangan adalah pelajaran Pandas & NumPy Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Pandas & NumPy Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Pandas & NumPy Academy mencakup 4 pelajaran total.
Memvisualisasikan Hubungan Antarvariabel
Plot distribusi menampilkan satu variabel pada satu waktu. Saat Anda ingin memahami hubungan antara dua variabel numerik, Anda memerlukan plot sebar dan visualisasi terkait. Visualisasi ini membantu Anda mendeteksi korelasi (apakah kedua variabel meningkat bersama?), klaster (apakah terdapat subkelompok dalam data?), dan pencilan (apakah ada titik tidak biasa yang jauh dari kumpulan utama?). Seaborn memudahkan semua hal ini dengan scatterplot dan pairplot.
import seaborn as sns
import matplotlib.pyplot as plt
# Load the classic iris dataset
iris = sns.load_dataset('iris')
print(iris.head())
print('\nShape:', iris.shape)Plot Sebar Dasar dengan sns.scatterplot
sns.scatterplot(data, x, y) memplot setiap pengamatan sebagai titik pada koordinat (x, y). Berbeda dari plt.scatter milik Matplotlib, versi Seaborn secara otomatis terhubung ke DataFrame dan terintegrasi dengan semantik hue, size, dan style. Hasilnya adalah plot multivariabel yang informatif melalui satu pemanggilan fungsi, lengkap dengan legenda otomatis.
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset('tips')
sns.scatterplot(data=tips, x='total_bill', y='tip')
plt.title('Tip vs Total Bill')
plt.xlabel('Total Bill ($)')
plt.ylabel('Tip ($)')
plt.show()Menyandikan Variabel Ketiga dengan hue
Parameter hue memberikan warna pada setiap titik berdasarkan variabel ketiga—baik kategorikal maupun numerik. Ketika hue adalah kolom kategorikal seperti 'smoker', Seaborn menggunakan warna yang berbeda-beda. Ketika hue adalah kolom numerik, Seaborn menggunakan peta warna berurutan. Dengan demikian, Anda dapat melihat tiga variabel sekaligus pada plot 2D tanpa menambahkan sumbu ketiga.
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset('tips')
sns.scatterplot(
data=tips,
x='total_bill',
y='tip',
hue='time', # Lunch vs Dinner
style='smoker', # marker shape
palette='deep'
)
plt.title('Tip vs Bill by Time and Smoker Status')
plt.legend(bbox_to_anchor=(1, 1))
plt.tight_layout()
plt.show()Menyandikan Ukuran dan Gaya
Selain hue, plot sebar Seaborn mendukung size (luas titik menyandikan variabel numerik) dan style (bentuk penanda menyandikan variabel kategorikal). Menggunakan ketiga semantik sekaligus dapat mengungkap pola multivariabel yang kompleks, tetapi berisiko membebani pembaca. Pedoman praktisnya adalah menggunakan hue terlebih dahulu (paling menonjol), style kedua, dan size hanya jika diperlukan.
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset('tips')
sns.scatterplot(
data=tips,
x='total_bill',
y='tip',
hue='day',
size='size', # party size controls marker area
sizes=(20, 200), # min and max dot area
alpha=0.7
)
plt.title('Tip vs Bill — Colour=Day, Size=Party Size')
plt.legend(bbox_to_anchor=(1, 1))
plt.tight_layout()
plt.show()Menambahkan Garis Regresi dengan regplot
sns.regplot() menggambar plot sebar dan melapiskan garis regresi linear dengan pita kepercayaan 95% berbayang. Ini berguna untuk memvisualisasikan kekuatan dan arah hubungan linear antara dua variabel. Pita kepercayaan menyempit di wilayah dengan data padat dan melebar di tepi, tempat lebih sedikit titik yang digunakan untuk menentukan kecocokan.
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset('tips')
sns.regplot(
data=tips,
x='total_bill',
y='tip',
scatter_kws={'alpha': 0.4},
line_kws={'color': 'red'}
)
plt.title('Tip vs Bill with Regression Line')
plt.show()lmplot: Plot Regresi Berfaset
sns.lmplot() adalah versi tingkat figur dari regplot. Fungsi ini mendukung hue (garis regresi terpisah untuk setiap kelompok dalam panel yang sama) serta col/row (panel terpisah). Fitur ini berguna untuk menguji apakah hubungan antara dua variabel berbeda di berbagai subkelompok—misalnya, apakah hubungan antara tagihan dan tip lebih curam untuk makan malam daripada makan siang.
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset('tips')
# Separate regression line per time (Lunch / Dinner)
sns.lmplot(
data=tips,
x='total_bill',
y='tip',
hue='time',
scatter_kws={'alpha': 0.4},
height=5
)
plt.suptitle('Regression by Meal Time', y=1.02)
plt.show()Pengantar Plot Pasangan
sns.pairplot(df) membuat kisi plot sebar untuk setiap pasangan kolom numerik dalam DataFrame, dengan plot distribusi pada diagonal. Ini adalah cara tercepat untuk memvisualisasikan semua hubungan berpasangan dalam himpunan data melalui satu pemanggilan. Untuk DataFrame dengan n kolom numerik, pairplot membuat kisi berukuran n×n. Cara ini paling praktis ketika n berada di antara 3 dan 8—kisi yang lebih besar menjadi terlalu kecil untuk dibaca.
import seaborn as sns
import matplotlib.pyplot as plt
iris = sns.load_dataset('iris')
# Create pairplot coloured by species
sns.pairplot(iris, hue='species', diag_kind='kde', plot_kws={'alpha': 0.5})
plt.suptitle('Iris Dataset Pairplot', y=1.02)
plt.show()Menyesuaikan Diagonal pairplot
Parameter diag_kind mengatur apa yang muncul pada diagonal kisi pairplot. Gunakan 'hist' untuk histogram atau 'kde' untuk estimasi kepadatan kernel. Diagonal menunjukkan distribusi univariat setiap variabel, sedangkan panel di luar diagonal menunjukkan plot sebar berpasangan. Anda juga dapat menggunakan corner=True untuk hanya menampilkan segitiga bawah, sehingga jumlah panel berkurang setengah dan pengulangan berkurang.
import seaborn as sns
import matplotlib.pyplot as plt
iris = sns.load_dataset('iris')
# Show only lower triangle
sns.pairplot(
iris,
hue='species',
diag_kind='hist',
corner=True
)
plt.show()PairGrid untuk Penyesuaian Penuh
sns.PairGrid memberi Anda kendali penuh atas jenis plot yang muncul di setiap bagian matriks. Gunakan g.map_upper(), g.map_lower(), dan g.map_diag() untuk menetapkan fungsi yang berbeda, seperti regplot pada segitiga atas dan kdeplot pada segitiga bawah. Hasilnya adalah plot berkualitas publikasi, dengan setiap panel menyampaikan informasi berbeda tentang pasangan variabel tersebut.
import seaborn as sns
import matplotlib.pyplot as plt
iris = sns.load_dataset('iris')
numeric_iris = iris.drop(columns=['species'])
g = sns.PairGrid(numeric_iris)
g.map_upper(sns.scatterplot, alpha=0.3)
g.map_lower(sns.kdeplot, fill=True)
g.map_diag(sns.histplot, kde=True)
plt.suptitle('Custom PairGrid', y=1.02)
plt.show()Mengidentifikasi Korelasi dalam Plot Sebar
Saat membaca scatter plot, perkirakan arah (apakah kumpulan titiknya menanjak atau menurun?), kekuatan (seberapa rapat titik-titik mengelompok di sekitar tren?), dan bentuk (linear atau melengkung?) hubungan tersebut. Koefisien korelasi r berkisar dari -1 (negatif sempurna) hingga +1 (positif sempurna), sedangkan 0 berarti tidak ada hubungan linear. Ingat: korelasi bukan sebab-akibat, dan hubungan non-linear dapat memiliki r ≈ 0.
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
np.random.seed(0)
x = np.linspace(0, 10, 100)
fig, axes = plt.subplots(1, 3, figsize=(12, 4))
# Strong positive correlation
axes[0].scatter(x, x + np.random.normal(0, 0.5, 100))
axes[0].set_title('Strong Positive (r≈0.99)')
# Weak correlation
axes[1].scatter(x, np.random.normal(5, 3, 100))
axes[1].set_title('No Correlation (r≈0)')
# Non-linear (quadratic) — r can be low
axes[2].scatter(x, (x-5)**2 + np.random.normal(0, 1, 100))
axes[2].set_title('Non-linear (r low despite pattern)')
plt.tight_layout()
plt.show()jointplot untuk Bivariat dengan Marginal
sns.jointplot() menggabungkan plot bivariat utama dengan plot univariat marginal di tepi atas dan kanan. Teruskan kind='scatter', 'hex', 'kde', atau 'reg'. Jenis hex berguna jika Anda memiliki ribuan titik yang saling bertumpuk — titik-titik tersebut dikelompokkan ke dalam segi enam, lalu warna digunakan untuk menunjukkan kepadatan, sehingga mengatasi masalah penumpukan plot yang membuat scatter plot tidak terbaca pada dataset besar.
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset('tips')
# KDE joint plot with marginal distributions
sns.jointplot(
data=tips,
x='total_bill',
y='tip',
kind='reg',
marginal_kws={'bins': 20}
)
plt.suptitle('Joint Distribution of Bill and Tip', y=1.02)
plt.show()Pemeriksaan Singkat
Uji pemahaman Anda tentang scatter plot dan pair plot Seaborn dari pelajaran ini.
Ringkasan Pelajaran
Dalam pelajaran ini Anda mempelajari bahwa sns.scatterplot menyandikan hingga empat variabel menggunakan x, y, hue, size, dan style; sns.regplot/lmplot menambahkan garis regresi untuk mengukur hubungan linear; dan sns.pairplot menghasilkan kisi semua pasangan yang ideal untuk analisis eksploratif dataset multivariabel. Selanjutnya kita akan mempelajari heatmap untuk memvisualisasikan matriks korelasi.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Plot Sebaran dan Plot Pasangan” gratis?
Ya — teks lengkap “Plot Sebaran dan Plot Pasangan” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Pandas & NumPy Academy, upgrade ke CoddyKit PRO. Kursus Pandas & NumPy Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Plot Sebaran dan Plot Pasangan”?
Buat plot sebaran yang diwarnai berdasarkan variabel ketiga dengan sns.scatterplot dan visualisasikan semua hubungan berpasangan dengan sns.pairplot. Kamu berlatih Pandas & NumPy Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Pandas & NumPy Academy?
Tidak diperlukan pengalaman sebelumnya. Pandas & NumPy Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Plot Sebaran dan Plot Pasangan” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Pandas & NumPy Academy ini?
Ya. Setiap pelajaran Pandas & NumPy Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Plot Distribusi: histplot dan kdeplot
- Plot Kategorikal: boxplot, barplot, violinplot
- Plot Sebaran dan Plot Pasangan
- Peta Panas untuk Matriks Korelasi