visualisasiseabornMahir6 mnt baca

Seaborn: Visualisasi Statistik Hemat Kode

Seaborn di atas Matplotlib: barplot, countplot, dan pairplot yang rapi hanya dalam sedikit baris, plus alasan kenapa analyst menyukainya.

Kenapa Seaborn ada kalau Matplotlib sudah cukup

Matplotlib itu seperti dapur lengkap: kamu bisa masak apa saja, tapi harus potong, tumis, dan bumbui sendiri. Seaborn itu seperti bumbu instan premium yang dibuat koki statistik: untuk chart-chart analisis yang umum, kamu dapat hasil cantik dan informatif dalam 2 sampai 3 baris. Seaborn dibangun di atas Matplotlib, jadi semua yang kamu pelajari tentang figure dan axes tetap berlaku, dan kamu bisa mencampur keduanya kapan pun.

Kenapa ini penting untuk data analyst? Karena 70 persen waktumu adalah eksplorasi, bukan membuat chart final untuk presentasi direksi. Seaborn mempercepat fase eksplorasi berkali-kali lipat: agregasi otomatis, interval kepercayaan otomatis, dan pewarnaan per kategori otomatis.

Contoh 1: barplot dengan agregasi otomatis

python
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd

df = pd.DataFrame({
    "kategori": ["Kopi", "Teh", "Kopi", "Roti", "Teh", "Kopi",
                 "Roti", "Snack", "Kopi", "Teh"],
    "penjualan": [120, 85, 140, 150, 95, 110, 130, 60, 125, 90],
})

sns.barplot(data=df, x="kategori", y="penjualan")
plt.title("Rata-rata Penjualan per Kategori")
plt.show()

Satu baris sns.barplot langsung menghitung rata-rata per kategori dan menggambar error bar (interval kepercayaan 95 persen) tanpa kamu minta. Di Matplotlib murni, kamu harus groupby manual, hitung mean dan standar error sendiri, lalu plot satu per satu. Inilah definisi "hemat kode".

Contoh 2: countplot untuk data kategorikal

python
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd

df = pd.DataFrame({
    "metode": ["Tunai", "QRIS", "Tunai", "Transfer", "QRIS", "Tunai",
               "QRIS", "QRIS", "Tunai", "Transfer", "QRIS", "Tunai"],
    "shift": ["Pagi", "Pagi", "Sore", "Pagi", "Sore", "Malam",
              "Pagi", "Sore", "Pagi", "Malam", "Malam", "Sore"],
})

sns.countplot(data=df, x="metode", hue="shift")
plt.title("Jumlah Transaksi per Metode Bayar (per Shift)")
plt.show()

countplot adalah bar chart yang menghitung frekuensi langsung dari data mentah, tidak perlu agregasi dulu. Parameter hue memecah tiap bar berdasarkan kategori kedua (shift), sehingga dalam satu chart kamu melihat dua dimensi sekaligus. Ini pola yang sangat sering dipakai di analisis operasional harian.

Contoh 3: pairplot, pindai semua hubungan sekaligus

python
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

np.random.seed(5)
n = 150
df = pd.DataFrame({
    "iklan": np.random.uniform(1, 10, n),
    "pengunjung": np.random.uniform(50, 500, n),
    "penjualan": np.random.uniform(20, 300, n),
    "kategori": np.random.choice(["A", "B"], n),
})
df["penjualan"] = df["iklan"] * 15 + df["pengunjung"] * 0.3 \
    + np.random.normal(0, 20, n)

sns.pairplot(df, hue="kategori", diag_kind="hist")
plt.suptitle("Pairplot: Semua Pasangan Variabel", y=1.02)
plt.show()

pairplot menggambar matriks scatter plot untuk semua pasangan variabel numerik, plus histogram di diagonalnya. Dalam satu perintah kamu memindai seluruh dataset. Kalau ada dua variabel yang polanya menarik, barulah kamu dalami dengan chart tunggal yang lebih detail. Anggap ini radar sebelum misi.

Contoh 4: tema Seaborn mempercantik chart Matplotlib

python
import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme(style="whitegrid")

plt.plot([1, 2, 3, 4], [10, 25, 18, 32], marker="o")
plt.title("Contoh Chart Matplotlib dengan Tema Seaborn")
plt.show()

Satu baris sns.set_theme() langsung mengupgrade tampilan semua chart Matplotlib-mu: grid halus, font bersih, warna modern. Trik ini berguna saat kamu sudah punya kode Matplotlib lama tapi ingin tampilannya naik kelas tanpa menulis ulang.

Jebakan umum 1: Seaborn dianggap pengganti Matplotlib

SALAH: berpikir "sudah belajar Seaborn, Matplotlib tidak perlu". Seaborn tidak bisa melakukan semua hal. Chart yang sangat custom, anotasi rumit, atau layout dashboard multi-panel tetap butuh Matplotlib langsung.

BENAR: kuasai Matplotlib untuk fondasi dan customisasi, pakai Seaborn untuk kecepatan eksplorasi. Keduanya saling melengkapi, dan Seaborn mengembalikan objek axes Matplotlib yang bisa kamu utak-atik lebih lanjut.

Jebakan umum 2: barplot dibaca sebagai total padahal itu rata-rata

Ini jebakan klasik. sns.barplot secara default menggambar rata-rata (mean), bukan total atau jumlah. Banyak analyst pemula mempresentasikan barplot lalu bilang "total penjualan kategori A paling tinggi", padahal chart-nya menunjukkan rata-rata.

BENAR: selalu cek estimator yang dipakai. Kalau butuh total, ubah dengan estimator=sum atau agregasi manual dulu. Jangan sampai insight yang kamu sampaikan salah hanya karena salah baca default fungsi.

Catatan teknis: Seaborn punya dua antarmuka, fungsional (sns.barplot) dan object-oriented (so.Plot, gaya grammar of graphics). Untuk kurva belajar tercepat, kuasai dulu yang fungsional. Pindah ke so.Plot kalau kamu butuh komposisi chart yang kompleks dan berlapis.

Ringkasan cepat

  • Seaborn: agregasi, confidence interval, dan hue otomatis, hemat banyak baris.
  • barplot untuk rata-rata per kategori, countplot untuk frekuensi, pairplot untuk pindai semua pasangan variabel.
  • sns.set_theme() mempercantik chart Matplotlib lama dalam satu baris.
  • Ingat default estimator barplot adalah mean, bukan total.

Tantangan

Eksplorasi cepat dengan Seaborn

Dari dataset penjualan (kolom: kategori, wilayah, penjualan, diskon): buat barplot rata-rata penjualan per kategori dengan hue wilayah, countplot jumlah transaksi per wilayah, dan pairplot kolom numeriknya. Tulis 2 insight dan 1 hal yang perlu kamu verifikasi karena default estimator.

Kuis Bab

Uji pemahamanmu: Bab 7: Statistik dan Visualisasi

Jawab 5 soal berikut, lalu tekan "Periksa Jawaban".

1.Data gaji punya beberapa nilai super besar. Ukuran tengah mana yang paling jujur?

2.Korelasi 0.9 antara jam belajar dan nilai artinya...

3.Chart apa yang paling tepat untuk melihat bentuk distribusi umur pelanggan?

4.Untuk melihat hubungan antara tinggi badan dan berat badan, chart apa yang dipakai?

5.Informasi apa yang langsung terlihat dari sebuah boxplot?