Hai sobat Exsight! Selamat datang kembali di artikel kita. Pada artikel sebelumnya yang berjudul “Heatmap: Dasar Teori dan Penerapannya“, kita telah membahas apa itu heatmap, kapan menggunakannya, macam-macamnya hingga penerapannya di dunia nyata. Visualisasi data yang satu ini menjadi salah satu cara paling efektif untuk menemukan pola, tren, dan anomali di dalam data.
Nah, di artikel lanjutan kali ini, kita akan masuk ke tahap yang lebih praktis, yaitu kita akan membuat heatmap menggunakan Python. Kita akan belajar langkah demi langkah, mulai dari menyiapkan data, memilih pustaka yang tepat, hingga mengatur tampilannya agar informasinya jelas dan mudah dipahami. Jadi, siapin laptop dan semangat eksplorasi datamu, karena kita akan langsung terjun ke dunia coding dan visualisasi yang seru!
Fungsi seaborn.heatmap()
Fungsi ini digunakan untuk membuat heatmap, yaitu visualisasi data dua dimensi dalam bentuk matriks dengan warna sebagai representasi nilai.
seaborn.heatmap(
data,
vmin=None, vmax=None,
cmap=None, center=None, robust=False,
annot=None, fmt='.2g', annot_kws=None,
linewidths=0, linecolor='white',
cbar=True, cbar_kws=None, cbar_ax=None,
square=False,
xticklabels='auto', yticklabels='auto',
mask=None, ax=None,
**kwargs
)
untuk penjelasan parameter dari sintaks di atas yaitu sebagai berikut:
- data (wajib) : Dataset dua dimensi (misalnya array atau DataFrame). Jika menggunakan Pandas DataFrame, nama kolom dan indeks otomatis dipakai sebagai label baris dan kolom.
- vmin, vmax (float, opsional) : Nilai minimum (vmin) dan maksimum (vmax) untuk mengatur skala warna. Jika tidak diisi, nilai ini otomatis ditentukan dari data.
- cmap (colormap Matplotlib atau daftar warna, opsional) : Skema warna yang dipakai untuk memetakan data ke warna. Jika tidak diberikan, nilai default akan menyesuaikan apakah parameter center digunakan.
- center (float, opsional) : Titik tengah colormap. Biasanya dipakai saat data bersifat divergen (misalnya ada nilai negatif dan positif). Jika digunakan tanpa cmap, maka colormap default akan diganti.
- robust (bool, opsional) : Jika
Truedan vmin atau vmax tidak diisi, maka rentang warna dihitung berdasarkan kuantil robust, bukan nilai ekstrim. Cocok untuk data dengan outlier. - annot (bool atau dataset 2D, opsional) : Jika True, nilai tiap sel akan ditulis di atas heatmap. Jika diberikan array dengan ukuran sama seperti data, maka isi array itu yang akan ditampilkan sebagai anotasi. (Catatan: untuk DataFrame, pencocokan hanya berdasarkan posisi, bukan nama indeks).
- fmt (str, opsional, default=”.2g”) : Format teks untuk menampilkan angka di anotasi.
- annot_kws (dict, opsional) : Pengaturan tambahan untuk teks anotasi, misalnya ukuran font atau warna, yang akan diteruskan ke matplotlib.axes.Axes.text().
- linewidths (float, opsional, default=0) : Ketebalan garis pemisah antar sel.
- linecolor (warna, opsional, default=”white”) : Warna garis pemisah antar sel.
- cbar (bool, opsional, default=True) : Menentukan apakah colorbar ditampilkan atau tidak.
- cbar_kws (dict, opsional) : Pengaturan tambahan untuk colorbar (misalnya ukuran, label).
- cbar_ax (matplotlib Axes, opsional) : Jika diisi, colorbar akan ditampilkan di Axes yang ditentukan, bukan di Axes utama.
- square (bool, opsional, default=False) : Jika True, maka setiap sel berbentuk kotak sempurna (aspek rasio sama).
- xticklabels, yticklabels(“auto”, bool, list, atau int, opsional)
- True : tampilkan nama kolom/baris.
- False : sembunyikan label.
- List : gunakan daftar label kustom.
- Int : tampilkan label setiap n langkah.
- “auto” : otomatis mencoba menampilkan label tanpa bertabrakan.
- mask (array-like atau DataFrame, opsional) : Jika diberikan, sel yang nilainya True pada mask tidak akan ditampilkan. Secara default, sel dengan nilai kosong (NaN) otomatis dimask.
- ax (matplotlib Axes, opsional) : Menentukan Axes tempat heatmap digambar. Jika tidak ada, akan digambar pada Axes aktif.
- kwargs : Parameter tambahan yang akan diteruskan ke matplotlib.axes.Axes.pcolormesh() untuk pengaturan lebih lanjut.
Studi Kasus menggunakan Heatmap
Pada kesempatan kali ini, kita akan menyelesaikan satu studi kasus yang menggunakan heatmap. Mari kita selesaikan bersama !
Latar Belakang
Diabetes Mellitus, khususnya Tipe 2 (T2DM), merupakan salah satu penyakit kronis yang terus meningkat prevalensinya di seluruh dunia. Banyak faktor yang berkontribusi terhadap munculnya diabetes, baik faktor genetik maupun gaya hidup.
Untuk memahami faktor-faktor risiko yang berhubungan dengan diabetes, kita bisa menggunakan Pima Indians Diabetes Dataset yang dikumpulkan oleh National Institute of Diabetes and Digestive and Kidney Diseases (NIDDK). Dataset ini sangat populer di bidang data science untuk analisis prediktif dan eksperimen machine learning. Namun, saat ini kita hanya akan melihat hubungan antar variabel medis menggunakan heatmap korelasi.
Analisis data berbasis visualisasi sangat membantu kita untuk memahami keterkaitan antar faktor medis yang berhubungan dengan diabetes. Nah, salah satu metode visualisasi yang populer adalah heatmap. Heatmap digunakan untuk melihat korelasi antar variabel numerik dalam dataset. Warna dalam heatmap membantu kita mengidentifikasi hubungan positif atau negatif antara faktor-faktor risiko diabetes.
Dataset yang digunakan dalam studi kasus ini adalah Pima Indians Diabetes Dataset yang berisi data medis dari 768 perempuan keturunan Pima Indian. Variabel-variabel yang terdapat dalam dataset adalah:
- Pregnancies : jumlah kehamilan
- Glucose : kadar glukosa darah
- BloodPressure : tekanan darah
- SkinThickness : ketebalan lipatan kulit
- Insulin : kadar insulin
- BMI : Body Mass Index (kg/m²)
- DiabetesPedigreeFunction : riwayat diabetes dalam keluarga
- Age : usia pasien
- Outcome : target (1 = diabetes, 0 = tidak)
Pada studi kasus ini kita akan menghitung korelasi antar variabel medis yang memengaruhi diabetes. Kemudian dilanjutkan dengan membuat heatmap untuk memvisualisasikan korelasi antar faktor. Terakhir tentunya tidak lupa untuk mengambil kesimpulan mengenai faktor-faktor yang paling kuat hubungannya dengan diabetes.
Analisis Menggunakan Python
Langkah 1 : Import Library
Pertama, kita perlu mengimpor library yang dibutuhkan, yaitu pandas untuk membaca data, seaborn untuk membuat heatmap, dan matplotlib untuk menampilkan visualisasi.
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
Langkah 2 : Import Dataset
Dataset akan diambil dari Kaggle/UC Irvine Machine Learning Repository.
# Membaca dataset
url = "https://raw.githubusercontent.com/plotly/datasets/master/diabetes.csv"
data = pd.read_csv(url)
# Menampilkan 5 baris pertama
print(data.head())
Setelah menjalankan sintaks di atas kita akhirnya mendapatkan dataset dan ditampilkan sebagai berikut:

Dari output di atas dapat kita ketahui bahwa dataset terdiri dari variabel Pregnancies, Glucose, BloodPressure, SkinThickness, Insulin, BMI, DiabetesPedigreeFunction, Age, dan Outcome.
Langkah 3 : Mengecek Informasi Dataset
Kita akan mencari tahu terlebih dahulu mengenai dataset yang kita punya. Apakah dataset tersebut mempunya nilai hilang atau tidak dan kita juga akan mencari tahu distribusi dataset kita
# Informasi dataset
print(data.info())
# Statistik deskriptif
print(data.describe())
Didapatkan output sebagai berikut

Dari output di atas kita dapat mengetahui bahwa data set ini terdiri dari 768 baris data dan 9 variabel. Semua variabel tidak memiliki nilai kosong (non-null), sehingga dataset dapat langsung digunakan tanpa perlu penanganan data hilang.

Dari output describe menunjukkan distribusi data yang bervariasi, misalnya glukosa (mean 121, std 32) dan BMI (mean 32, std 7,8) yang relevan terhadap diabetes, serta usia (21–81 tahun) dan kehamilan (maks 17) yang memiliki rentang luas. Variabel lain seperti Insulin dan SkinThickness juga menyebar lebar. Nah, variasi ini menandakan data layak dianalisis dengan korelasi menggunakan heatmap.
Langkah 4 : Menghitung Korelasi Antar Variabel
Karena heatmap biasanya menampilkan korelasi antar variabel numerik, kita hitung korelasi dengan .corr().
# Hitung korelasi
corr = data.corr()
print(corr)
Sintaks diatas menghasilkan output sebagai berikut:

Dapat dilihat dari output ini bahwa banyak data yang harus kita lihat dan ini cukup membingungkan bagi orang awam. Output ini juga tidak menarik untuk dilihat. Di sini lah kita memerlukan visualisasi. Oleh karena itu, kita akan membuat heatmap agar dapat disajikan dengan lebih sederhana, menarik serta memudahkan kita untuk melakukan interpretasi.
Langkah 5 : Membuat Heatmap
Sintaks yang kita perlukan untuk membuat heatmap yaitu sebagai berikut:
plt.figure(figsize=(10,7))
sns.heatmap(corr, annot=True, cmap="coolwarm")
plt.title("Heatmap Korelasi Variabel Diabetes")
plt.show()
plt.figure(figsize=(10,7)) disini digunakan untuk mengatur ukuran visualisasi agar grafik tidak terlihat sempit dan angka korelasi bisa terbaca dengan jelas. Selanjutnya, sns.heatmap(corr, annot=True, cmap=”coolwarm”) membentuk peta korelasi dari matriks corr, di mana warna biru menunjukkan hubungan negatif, sedangkan merah menunjukkan hubungan positif. Semakin pekat warnanya, semakin kuat tingkat korelasinya. Argumen annot=True menambahkan nilai korelasi langsung di dalam tiap kotak, sehingga memudahkan pembacaan. Kemudian, plt.title(…) memberi judul pada grafik agar konteks visualisasi langsung dipahami, dan terakhir plt.show() dipakai untuk menampilkan hasilnya. Nah dari sintaks ini, kita dapatkan output sebagai berikut

atau kita juga bisa hanya menampilkan bagian segitiga bawah dari matriks korelasi dengan menggunakan sintaks berikut
# Membuat mask untuk segitiga atas
mask = np.triu(np.ones_like(corr, dtype=bool))
# Plot heatmap hanya segitiga bawah
plt.figure(figsize=(10, 7))
sns.heatmap(corr, annot=True, cmap="coolwarm", mask=mask, linewidths=0.5)
plt.title("Heatmap Korelasi Variabel Diabetes (Segitiga Bawah)")
plt.show()
Kode di atas menggunakan teknik masking untuk hanya menampilkan bagian segitiga bawah dari matriks korelasi agar visualisasi lebih ringkas. Pertama, mask = np.triu(np.ones_like(corr, dtype=bool)) membuat sebuah matriks segitiga atas bernilai True, sehingga bagian atas dari heatmap akan disembunyikan. Lalu, sns.heatmap(corr, annot=True, cmap=”coolwarm”, mask=mask, linewidths=0.5), di sini ada tambahan mask yang digunakan untuk membentuk heatmap dengan hanya menampilkan segitiga bawahnya. Di sini juga ditambahkan argumen linewidths=0.5 menambahkan garis pemisah tipis antar kotak agar lebih mudah dibaca. Output yang dihasilkan dari sintaks ini adalah sebagai berikut

Dapat dilihat bahwa dengan cara ini, heatmap menjadi lebih sederhana, tidak ada duplikasi nilai, dan lebih mudah diinterpretasi. Hal ini dapat dilihat dari output di atas.
Kita juga dapat melihat korelasi semua variabel dengan variabel target ‘Outcome’ dengan sintaks berikut
# Korelasi semua variabel dengan variabel target 'Outcome'
corr_target = data.corr()[['Outcome']].sort_values(by='Outcome', ascending=False)
# Plot heatmap
plt.figure(figsize=(6, 8))
heatmap = sns.heatmap(corr_target, vmin=-1, vmax=1, annot=True, cmap='coolwarm')
# Judul grafik
heatmap.set_title('Korelasi Fitur dengan Outcome (Diabetes)', fontdict={'fontsize':16}, pad=16)
plt.show()
data.corr() digunakan untuk menghitung korelasi semua variabel numerik, lalu [[“Outcome”]] memilih hanya kolom korelasi terhadap variabel target. Setelah itu, .sort_values(by=’Outcome’, ascending=False) digunakan untuk mengurutkan variabel dari yang paling kuat korelasinya sampai yang paling lemah. Hasil ini divisualisasikan menggunakan sns.heatmap(), di mana vmin=-1, vmax=1 memastikan skala warna dari -1 sampai 1, annot=True menampilkan angka korelasinya. Didapatkan hasil sebagai berikut

Pembahasan
Kita akan menginterpretasi output yang telah didapatkan sebelumnya, sehingga kita bisa mendapatkan kesimpulan dari data yang telah dianalisis ini

Heatmap segitiga korelasi ini menunjukkan hubungan antarvariabel pada dataset diabetes. Terlihat bahwa variabel Glucose memiliki korelasi paling kuat dengan Outcome (0.47), sehingga kadar glukosa darah sangat berpengaruh terhadap kemungkinan diabetes. Selain itu, BMI (0.29), Age (0.24), dan Pregnancies (0.22) juga memiliki korelasi positif terhadap Outcome, meskipun tidak sekuat Glucose. Variabel lain seperti BloodPressure, SkinThickness, Insulin dan DiabetesPedigreeFunction menunjukkan korelasi yang lemah dengan Outcome. Korelasi antarvariabel juga terlihat, misalnya Insulin dengan SkinThickness (0.44) dan Pregnancies dengan Age (0.54).
Agar lebih jelas kita bisa melihat visualisasi korelasi semua variabel dengan variabel target ‘Outcome’

Di sini sangat terlihat bahwa variabel yang paling penting untuk memperkirakan diabetes dalam dataset ini adalah Glucose. Sementara variabel BloodPreesure memberikan paling sedikit kontribusi.
Kesimpulan
Berdasarkan heatmap korelasi, glukosa darah menjadi faktor paling signifikan dalam memprediksi diabetes, diikuti oleh BMI, Usia, dan Jumlah Kehamilan, sementara variabel lain memberikan pengaruh yang sangat rendah. Dari analisis ini juga kita dapat melihat bahwa heatmap dapat digunakan untuk melihat kekuatan hubungan antarvariabel, membantu menentukan variabel penting untuk prediksi diabetes, sekaligus mendeteksi hubungan antarvariabel independen yang mungkin memengaruhi analisis. Dengan visualisasi yang jelas, heatmap mempermudah pemahaman pola data dan fokus pada faktor yang paling signifikan dalam memprediksi risiko diabetes.
Referensi
Pengembang Seaborn. (n.d.). seaborn.heatmap. Dalam Dokumentasi Seaborn (versi 0.13.2). Diakses pada 17 Agustus 2025, dari https://seaborn.pydata.org/generated/seaborn.heatmap.html
Smith, J., & Mozharovskyi, P. (n.d.). Pima Indians Diabetes Database description. Télécom Paris. Diakses pada 30 Agustus 2025, dari https://perso.telecom-paristech.fr/mozharovskyi/datasets/data_descriptions/diabetes.pdf
Szabo, B. (2020). How to Create a Seaborn Correlation Heatmap in Python? Medium. Diakses pada 30 Agustus 2025, darihttps://medium.com/@szabo.bibor/how-to-create-a-seaborn-correlation-heatmap-in-python-834c0686b88e
UCI Machine Learning & Kaggle. (2016). Pima Indians Diabetes Database. Kaggle. Diakses pada 30 Agustus 2025, dari https://www.kaggle.com/datasets/uciml/pima-indians-diabetes-database/data
Sampai di sini dulu penjelasan terkait Heatmap : Tutorial dengan Python. Apabila sobat Exsight masih ada yang dibingungkan terkait pembahasan pada artikel ini, bisa langsung saja ramaikan kolom komentar atau hubungi admin melalui tombol bantuan di kanan bawah. Stay tuned di website https://exsight.id/blog/ agar tidak ketinggalan artikel-artikel menarik lainnya. See you in the next article yaa!
