Heatmap

Heatmap merupakan format visualisasi yang sesuai digunakan dalam menggambarkan besaran dari suatu variabel dalam rentang spektrum warna. Halaman ini membahas bagaimana membuatnya dalam Python.

Definisi

Heatmap adalah teknik visualisasi data yang menunjukkan besarnya suatu fenomena sebagai warna dalam dua dimensi. Variasi warna mungkin dengan rona atau intensitas, memberikan isyarat visual yang jelas kepada pembaca tentang bagaimana fenomena tersebut berkerumun atau bervariasi di atas ruang. Dalam data science visualisasi ini dapat digunakan dalam menggambarkan tingkat korelasi antara variabel-variabel yang digambarkan dengan warna dengan intensitas lebih cerah untuk highly correlated positif variable dan intensitas rendah untuk highly correlated negatif.

Video

Matplotlib

Membuat Heatmap Korelasi Menggunakan Matplotlib

Seaborn

Cara Visualisasi Heatmap Menggunakan Seaborn

Visualisasi Heatmap

Matplotlib

Berikut merupakan python code dalam melakukan visualisasi heatmap di mana dibutuhkan matrix dua dimensi sebagai input yang menjadi nilai intesitas dari warna map yang dihasilkan oleh chart.

import numpy as np
import matplotlib
import matplotlib.pyplot as plt

# fitur-fitur dari vegetables dan farmers
vegetables = ["cucumber", "tomato", "lettuce", "asparagus",
              "potato", "wheat", "barley"]
farmers = ["Farmer Joe", "Upland Bros.", "Smith Gardening",
           "Agrifun", "Organiculture", "BioGoods Ltd.", "Cornylee Corp."]

# data matrix dua dimensi yang akan divisualisasikan dalam heatmap
harvest = np.array([[0.8, 2.4, 2.5, 3.9, 0.0, 4.0, 0.0],
                    [2.4, 0.0, 4.0, 1.0, 2.7, 0.0, 0.0],
                    [1.1, 2.4, 0.8, 4.3, 1.9, 4.4, 0.0],
                    [0.6, 0.0, 0.3, 0.0, 3.1, 0.0, 0.0],
                    [0.7, 1.7, 0.6, 2.6, 2.2, 6.2, 0.0],
                    [1.3, 1.2, 0.0, 0.0, 0.0, 3.2, 5.1],
                    [0.1, 2.0, 0.0, 1.4, 0.0, 1.9, 6.3]])


# membuat kanvas 
fig, ax = plt.subplots()
im = ax.imshow(harvest)

# menampilkan tanda dan label fitur
ax.set_xticks(np.arange(len(farmers)), labels=farmers)
ax.set_yticks(np.arange(len(vegetables)), labels=vegetables)

# melakukan rotasi pada label untuk alignment.
plt.setp(ax.get_xticklabels(), rotation=45, ha="right",
         rotation_mode="anchor")

# Loop semua data untuk membuat anotasi teks dan background map.
for i in range(len(vegetables)):
    for j in range(len(farmers)):
        text = ax.text(j, i, harvest[i, j],
                       ha="center", va="center", color="w")

# meletakkan judul dan menampilkan hasil plot
ax.set_title("Harvest of local farmers (in tons/year)")
fig.tight_layout()
plt.show()

Contoh di atas diambil dari docs Matplotlib berikut https://matplotlib.org/stable/gallery/images_contours_and_fields/image_annotated_heatmap.html

Seaborn

Seperti visualisasi chart pada yang lain, dengan Seaborn kita bisa membuat plotting heatmap dengan sangat sederhana atau cukup 2 lines code dengan input berupa matrix numpy dua dimensi. Berikut merupakan code python untuk visualisasi heatmap menggunakan Seaborn.

import numpy as np
 np.random.seed(0)
import seaborn as sns
sns.set_theme()

uniform_data = np.random.rand(10, 12)
ax = sns.heatmap(uniform_data)

Contoh di atas diambil dari dokumentasi Seaborn. Untuk melihat argument dari function heatmap secara lebih lengkap, dapat dilihat pada link berikut https://seaborn.pydata.org/generated/seaborn.heatmap.html.

Last updated