Seaborn Heatmap: Visualisasi Matriks Korelasi (2026)
TL;DR
Seaborn heatmap adalah grafik grid warna buat visualisasi matriks korelasi di Python. Cara bikinnya: hitung korelasi pakai df.corr(), lalu gambar pakai sns.heatmap(corr, annot=True, cmap='coolwarm'). Warna hangat nunjukin korelasi positif, warna dingin nunjukin negatif, dan annot=True nampilin angka korelasinya di tiap sel.
Seaborn heatmap ngubah matriks korelasi jadi grid warna, jadi kamu bisa langsung lihat variabel mana yang saling terkait tanpa melototin angka satu-satu. Warna hangat berarti hubungan positif, warna dingin berarti negatif.
Buat analis, ini salah satu grafik pertama yang dibikin waktu kenalan sama dataset baru. Dalam satu gambar kamu tau kolom mana yang gerak bareng dan mana yang nggak nyambung.
Aku bahas dari nol: hitung korelasi, gambar heatmap, atur warna dan angka, sampai baca hasilnya pakai data penjualan toko. Semua kode siap kamu tempel.
Apa Itu Seaborn Heatmap?
Seaborn heatmap adalah grafik yang nampilin nilai dalam bentuk grid warna. Tiap sel diwarnai sesuai besarnya angka. Buat matriks korelasi, tiap sel nunjukin seberapa kuat dua kolom bergerak bareng, dari -1 sampai 1.
Seaborn sendiri adalah library visualisasi Python yang dibangun di atas matplotlib. Fungsinya bikin grafik statistik jadi lebih ringkas ditulis. Butuh dasar seaborn dulu? Cek glossary seaborn.
Nilai korelasi 1 berarti dua kolom gerak searah sempurna. Nilai -1 berarti berlawanan sempurna. Nol berarti nggak ada hubungan linear.
Gimana Cara Bikin Heatmap Korelasi di Python?
Hitung matriks korelasi pakai df.corr(), lalu gambar pakai sns.heatmap. Cuma butuh dua baris inti. Berikut kode lengkap dari import sampai tampil.
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
df = pd.read_csv('penjualan_toko.csv')
# 1. Hitung matriks korelasi
corr = df.corr(numeric_only=True)
# 2. Gambar heatmap
sns.heatmap(corr, annot=True, cmap='coolwarm', fmt='.2f')
plt.show()
Tiga parameter penting di sini. annot=True nampilin angka di tiap sel. cmap='coolwarm' ngatur skema warna. fmt='.2f' bikin angkanya dua desimal biar rapi.
Kalau kamu baca datanya dari file Excel, ganti read_csv sesuai kebutuhan. Aku bahas caranya di pandas read_excel.
Kenapa Harus Pakai df.corr() Dulu?
sns.heatmap cuma gambar angka apa adanya. Dia nggak ngerti korelasi. Jadi kamu perlu df.corr() buat ngitung matriks korelasinya dulu, baru dikasih ke heatmap.
df.corr() ngambil semua kolom numerik dan ngitung korelasi Pearson antar pasangan kolom. Hasilnya tabel persegi, jumlah baris sama kolomnya sama.
corr = df.corr(numeric_only=True)
print(corr)
Parameter numeric_only=True penting. Tanpa itu, kolom teks kayak nama kota atau kategori bikin error. Dengan itu, pandas otomatis buang kolom non-angka.
Diagonal matriks selalu isinya 1, karena tiap kolom pasti berkorelasi sempurna sama dirinya sendiri.
Cara Atur Warna Heatmap Biar Enak Dibaca
Buat korelasi, pakai colormap diverging yang punya dua ujung warna dan titik netral di tengah. Contohnya coolwarm, RdBu_r, atau vlag. Set juga rentang warnanya biar nol selalu netral.
sns.heatmap(
corr,
annot=True,
cmap='coolwarm',
vmin=-1, vmax=1, center=0,
fmt='.2f',
linewidths=0.5
)
plt.title('Korelasi Antar Variabel Penjualan')
plt.show()
Ini fungsi tiap parameter tambahan:
| Parameter | Fungsi |
|---|---|
| vmin, vmax | Batas bawah dan atas skala warna (-1 sampai 1) |
| center=0 | Bikin nol jadi warna netral di tengah |
| linewidths | Garis pemisah antar sel biar nggak nyatu |
| fmt | Format angka, '.2f' buat dua desimal |
Hindari colormap satu arah kayak viridis buat korelasi. Susah bedain mana positif mana negatif kalau warnanya cuma gelap ke terang.
Cara Sembunyiin Setengah Heatmap yang Kembar
Matriks korelasi itu simetris. Segitiga atas sama persis kayak segitiga bawah, cuma dicerminin. Buat tampilan lebih bersih, tutup salah satu pakai mask.
import numpy as np
mask = np.triu(np.ones_like(corr, dtype=bool))
sns.heatmap(corr, mask=mask, annot=True, cmap='coolwarm',
vmin=-1, vmax=1, center=0, fmt='.2f')
plt.show()
np.triu bikin penanda buat segitiga atas, terus mask ngosongin bagian itu. Sisanya cuma separuh bawah yang unik. Lebih enak dibaca, apalagi kalau kolomnya banyak.
Contoh Kasus: Korelasi Penjualan toko_berkah
Aku pakai data harian toko_berkah selama 90 hari, dengan kolom: suhu_udara, jumlah_pengunjung, penjualan_minuman, penjualan_snack, dan diskon_persen. Aku mau tau apa yang bikin minuman laku.
kolom = ['suhu_udara', 'jumlah_pengunjung',
'penjualan_minuman', 'penjualan_snack', 'diskon_persen']
corr = df[kolom].corr()
sns.heatmap(corr, annot=True, cmap='coolwarm',
vmin=-1, vmax=1, center=0, fmt='.2f')
plt.show()
Hasil dari dataku: korelasi suhu_udara sama penjualan_minuman ternyata 0,73. Cukup kuat. Makin panas, minuman makin laku. Sementara diskon_persen sama penjualan_minuman cuma 0,18, nyaris nggak ada hubungan.
Insight ini mengubah keputusan toko. Diskon minuman ternyata kurang ngefek. Yang lebih ngefek malah cuaca panas. Jadi stok minuman dingin lebih baik diatur ngikutin ramalan suhu, bukan jadwal promo.
Ingat, korelasi kuat bukan berarti sebab akibat. Suhu naik dan minuman laku bareng, tapi heatmap nggak bilang yang satu nyebabin yang lain. Itu tugas analisis lanjutan.
Kesalahan Umum Bikin Heatmap Korelasi
- Lupa numeric_only. Kolom teks bikin df.corr() error. Tambahin numeric_only=True.
- Pakai colormap satu arah. viridis atau Blues bikin positif dan negatif susah dibedain. Pakai coolwarm.
- Nggak set vmin/vmax. Tanpa batas -1 dan 1, skala warna ngikut data dan bikin korelasi lemah keliatan kuat.
- Baca korelasi sebagai sebab akibat. Heatmap nunjukin hubungan, bukan penyebab.
- Heatmap kepenuhan angka. Kalau kolomnya 20 lebih, matikan annot atau pakai mask biar nggak berantakan.
FAQ
Pertanyaan yang sering muncul soal seaborn heatmap buat korelasi.
Penutup
Bikin heatmap korelasi cuma dua langkah. Hitung df.corr(), lalu gambar sns.heatmap dengan annot dan cmap coolwarm.
Set vmin=-1, vmax=1, dan center=0 biar warnanya jujur. Pakai mask kalau mau tampilan yang lebih bersih.
Coba jalanin kodenya di dataset kamu sendiri sekarang. Cari satu pasangan kolom dengan korelasi paling tinggi, terus tanya kenapa mereka gerak bareng.
Mau visualisasi lain? Lanjut baca seaborn pairplot buat eksplorasi data. Dokumentasi resmi ada di halaman seaborn.heatmap.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Artikel terkait
Seaborn Pairplot: Cara Eksplorasi Data Cepat dengan Python (2026)
Satu baris kode buat lihat hubungan semua kolom numerik sekaligus. Ini cara pakai seaborn pairplot buat eksplorasi data, lengkap dengan contoh dan cara bacanya.
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.