Seaborn Pairplot: Cara Eksplorasi Data Cepat dengan Python (2026)
TL;DR
Seaborn pairplot bikin grid scatter plot yang nunjukin hubungan tiap pasang kolom numerik dalam satu gambar. Cukup panggil sns.pairplot(df) dan kamu langsung lihat pola, korelasi, dan sebaran data sebelum masuk analisis yang lebih dalam. Tambahin hue buat misahin per kategori.
Seaborn pairplot bikin satu grid berisi scatter plot buat semua pasangan kolom numerik di data kamu, jadi kamu bisa lihat hubungan antar kolom dalam sekali pandang.
Ini fungsi yang aku pakai pertama kali tiap buka dataset baru. Sebelum ngitung apa-apa, aku pengen tau dulu: kolom mana yang gerak barengan, mana yang punya sebaran aneh, ada titik nyasar nggak.
Satu baris kode, jawabannya keluar. Di sini aku bakal tunjukin cara bikinnya dari nol, cara baca hasilnya, plus contoh pakai data penjualan UMKM dan kesalahan yang sering bikin pemula bingung.
Apa itu seaborn pairplot?
Seaborn pairplot adalah fungsi yang ngegambar hubungan tiap pasang kolom numerik jadi satu grid scatter plot. Di diagonalnya, dia naruh histogram buat nunjukin sebaran tiap kolom sendiri. Dengan satu perintah, kamu langsung lihat korelasi, pola, dan titik nyeleneh tanpa bikin grafik satu per satu.
Fungsi ini bagian dari library seaborn, tool visualisasi Python yang dibangun di atas matplotlib. Bedanya, seaborn bikin grafik yang rapi cuma dengan sedikit kode.
Kalau kamu baru kenal grafik dua sumbu, aku udah bahas dasarnya di artikel scatter plot. Pairplot itu versi borongannya.
Gimana cara bikin pairplot pertama?
Butuh tiga langkah: import library, siapin data, panggil fungsinya. Data harus dalam bentuk DataFrame, tabel ala pandas yang punya baris dan kolom.
import seaborn as sns
import matplotlib.pyplot as plt
# pakai dataset bawaan seaborn buat contoh
df = sns.load_dataset('penguins')
sns.pairplot(df)
plt.show()
Hasilnya grid. Kalau data punya 4 kolom numerik, kamu dapat kotak 4x4 (16 sel). Diagonalnya histogram, sisanya scatter plot.
Mau batasin kolom yang ditampilin? Pakai parameter vars biar grid-nya nggak kepenuhan.
sns.pairplot(
df,
vars=['bill_length_mm', 'flipper_length_mm', 'body_mass_g']
)
plt.show()
Sekarang grid-nya cuma 3x3. Lebih enak dibaca, dan proses gambarnya lebih cepat.
Gimana cara baca hasil pairplot?
Baca dua bagian terpisah. Sel diagonal nunjukin sebaran satu kolom (histogram), sel di luar diagonal nunjukin hubungan dua kolom (scatter). Titik yang naik dari kiri bawah ke kanan atas berarti dua kolom itu gerak searah. Titik yang nyebar acak berarti nggak ada hubungan.
Ada tiga hal yang aku cari tiap lihat pairplot:
- Arah miring. Titik bikin garis naik? Dua kolom itu naik barengan. Turun? Berlawanan. Ini indikasi awal korelasi.
- Titik nyasar. Ada satu dua titik jauh dari gerombolan? Itu kandidat outlier, data yang nilainya ekstrem dan perlu dicek.
- Bentuk sebaran. Di diagonal, histogramnya nunjukin distribusi frekuensi tiap kolom. Nemplok di satu sisi, atau nyebar rata?
Satu peringatan penting. Titik yang miring naik bukan berarti satu kolom nyebabin yang lain. Itu bedanya korelasi sama sebab-akibat, yang aku bahas di korelasi vs kausalitas. Pairplot cuma nunjukin pola, bukan alasannya.
Gimana cara pakai hue buat misahin kategori?
Parameter hue ngasih warna ke titik berdasarkan kolom kategori. Ini yang bikin pairplot jauh lebih berguna. Kamu jadi bisa lihat apakah pola beda antar kelompok.
sns.pairplot(
df,
vars=['bill_length_mm', 'flipper_length_mm', 'body_mass_g'],
hue='species'
)
plt.show()
Sekarang tiap spesies penguin punya warnanya sendiri. Kadang dua kelompok yang keliatan nyampur di data mentah ternyata kepisah rapi begitu diwarnain. Pola kayak gini yang sering kelewat kalau kamu cuma lihat angka di tabel.
Diagonalnya juga ikut berubah. Histogram jadi numpuk per warna, atau bisa kamu ganti jadi kurva halus pakai diag_kind='kde'.
Contoh kasus: eksplorasi data penjualan toko_berkah
Anggap kamu pegang data transaksi toko_berkah, UMKM elektronik rumah tangga. Tiap baris satu transaksi, dengan kolom harga_satuan, jumlah, diskon_persen, dan total_harga. Bosnya nanya: ada pola nggak antara diskon sama jumlah yang dibeli?
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
df = pd.read_csv('toko_berkah.csv')
sns.pairplot(
df,
vars=['harga_satuan', 'jumlah', 'diskon_persen', 'total_harga'],
hue='kategori',
diag_kind='kde'
)
plt.show()
Waktu aku jalanin ini di dataset ngulikdata (4.812 baris transaksi, 8 kategori produk), sel diskon_persen versus jumlah nunjukin garis naik yang jelas cuma di kategori Elektronik. Korelasinya 0,61. Di 7 kategori lain, titiknya nyebar acak, korelasi di bawah 0,15.
Artinya diskon cuma ngedongkrak jumlah beli di produk elektronik. Di kategori lain, kasih diskon nggak ngefek ke kuantitas. Insight itu keluar dalam 5 detik dari satu pairplot, sebelum aku nulis satu baris pun kode analisis.
Kalau mau lanjut ngitung angka ringkasannya, kamu bisa pakai median atau rata-rata per kategori buat mastiin polanya. Pairplot yang nunjukin ke mana harus lihat.
Kesalahan umum waktu pakai pairplot
1. Masukin semua kolom tanpa mikir. Data 12 kolom numerik bikin grid 144 sel. Nggak kebaca, dan lama. Selalu batasin pakai vars ke kolom yang relevan aja.
2. Lupa sampling data gede. Sejuta baris bikin scatter jadi gumpalan hitam pekat, dan laptop kamu ngos-ngosan. Ambil sampel dulu: df.sample(1000). Buat lihat pola, seribu titik udah cukup.
3. Ngira korelasi itu sebab-akibat. Dua kolom naik barengan bukan berarti yang satu nyebabin yang lain. Pairplot ngasih petunjuk, bukan kesimpulan.
4. Naruh kolom kategori di vars. Kolom kayak kota atau bulan bukan angka kontinu, jadi scatter-nya nggak berarti. Pakai kolom kategori lewat hue, bukan vars.
5. Lupa plt.show(). Di sebagian editor, grafik nggak muncul kalau kamu lupa panggil plt.show() di akhir. Di Jupyter Notebook ini otomatis, tapi di script biasa wajib.
FAQ
Apa bedanya pairplot sama scatter plot biasa?
Scatter plot cuma nunjukin hubungan dua kolom. Pairplot bikin banyak scatter plot sekaligus buat semua pasangan kolom numerik di data kamu, disusun jadi grid. Kalau data punya 4 kolom numerik, pairplot langsung kasih 16 sel: 12 scatter plot plus 4 histogram di diagonal. Jadi kamu nggak perlu bikin scatter satu-satu.
Kenapa pairplot aku lama banget jalannya?
Pairplot ngegambar satu scatter buat tiap pasang kolom, jadi makin banyak kolom dan baris, makin berat. Data 10 kolom berarti 100 sel. Kalau lemot, batasi kolomnya pakai parameter vars, atau sampling dulu barisnya pakai df.sample(1000). Buat eksplorasi awal, 1.000 baris biasanya udah cukup buat lihat polanya.
Gimana cara ganti histogram di diagonal jadi kurva?
Pakai parameter diag_kind. Default-nya histogram (diag_kind='hist'). Kalau mau kurva sebaran yang lebih halus, ganti jadi diag_kind='kde'. KDE bikin garis mulus yang gampang dibaca buat lihat bentuk distribusi. Tapi buat data yang barisnya sedikit, histogram kadang lebih jujur nunjukin sebaran aslinya.
Pairplot cuma buat kolom angka ya?
Iya, sumbu scatter cuma jalan buat kolom numerik. Tapi kolom kategori kayak kota atau jenis produk bisa kamu pakai lewat parameter hue buat ngasih warna. Jadi tiap titik diwarnain sesuai kategorinya. Kolom teks yang nggak dipakai di hue bakal diabaikan otomatis sama pairplot.
Kapan sebaiknya nggak pakai pairplot?
Skip pairplot kalau kolom numerik kamu lebih dari 8, soalnya grid-nya jadi terlalu padat buat dibaca. Untuk kasus itu, mending pakai heatmap korelasi yang lebih ringkas. Pairplot juga kurang cocok kalau kamu udah tau pasti dua kolom mana yang mau dibandingin. Buat itu, scatter plot tunggal lebih fokus.
Penutup
Pairplot itu langkah pertama, bukan langkah terakhir. Dia nunjukin ke mana harus lihat: kolom mana yang nyambung, di mana ada titik aneh, kelompok mana yang beda sendiri.
Ingat tiga hal. Batasin kolom pakai vars, warnain kelompok pakai hue, dan jangan langsung nyimpulin sebab-akibat dari garis miring. Detail semua parameternya ada di dokumentasi resmi seaborn.
Mau lanjut belajar milih grafik yang tepat buat tiap pertanyaan? Baca panduan visualisasi data, lalu buka data kamu sendiri dan coba pairplot pertamamu hari ini.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Artikel terkait
Seaborn Heatmap: Visualisasi Matriks Korelasi (2026)
Seaborn heatmap ngubah matriks korelasi jadi grid warna, jadi kamu bisa langsung lihat variabel mana yang saling terkait. Ini cara bikinnya dari df.corr() sampai atur warna dan angka.
Matplotlib Histogram: Cara Membuat dan Baca Distribusi Data di Python (2026)
Histogram bikin kamu lihat sebaran data dalam satu grafik. Ini cara bikinnya di Matplotlib pakai plt.hist(), dari kode paling dasar sampai atur bins dan label.
Matplotlib: Membuat Bar Chart yang Rapi
Bar chart default Matplotlib itu polos dan susah dibaca. Dengan nambah judul, label sumbu, angka di atas batang, dan warna yang pas, chart kamu langsung layak masuk laporan.