[Explained] Cara Membuat Peta Panas dengan Python

Visualisasi adalah cara penting untuk memahami data dan menarik wawasan yang informatif dan dapat ditindaklanjuti. Visual yang baik memungkinkan pembaca mendapatkan pengertian dasar dari informasi hanya dengan pandangan sekilas.

Visualisasi populer yang digunakan untuk melihat data adalah peta panas. Pada artikel ini, saya akan menjelaskan peta panas dan cara membuatnya dengan Python menggunakan Matplotlib, Seaborn, dan Plotly.

Apa itu Peta Panas?

Sumber: seaborn.pydata.org

Peta panas adalah gambar 2 dimensi yang merepresentasikan data sebagai matriks atau kisi titik. Bayangan plot warna mewakili setiap titik data. Nuansa yang lebih gelap mewakili nilai yang lebih tinggi daripada nuansa yang lebih terang.

Peta panas memudahkan untuk mengidentifikasi pola, tren, dan variasi dalam data. Mereka memberikan informasi ringkasan yang memungkinkan pengguna dengan cepat melihat area dengan nilai tinggi atau rendah, cluster, atau outlier.

Di Mana Peta Panas Digunakan?

Peta panas sangat membantu dalam menunjukkan bagaimana nilai bervariasi di ruang angkasa. Kasus penggunaan sehari-hari meliputi:

Cuaca

Peta panas paling populer yang dilihat kebanyakan orang adalah peta panas literal – menunjukkan bagaimana suhu bervariasi di berbagai tempat.

Ini adalah contoh ramalan cuaca dari Harian Ekspres menunjukkan suhu yang diharapkan sebagai peta panas. Ini memudahkan untuk memvisualisasikan tempat mana yang akan panas, dingin, atau di antaranya.

Menampilkan Penggunaan Situs Web/Aplikasi

Sumber: HotJar

Melalui pelacakan pergerakan mouse, klik, dan pola pengguliran, peta panas membantu mengidentifikasi area halaman web yang populer atau diabaikan. Ini kemudian dapat digunakan untuk mengoptimalkan antarmuka pengguna dan meningkatkan pengalaman pengguna.

Pencitraan medis

Sumber: researchgate.net

Peta panas memvisualisasikan area aktivitas tinggi atau rendah di tubuh. Ini dapat mengidentifikasi anomali dan penyakit serta menilai perkembangan atau respons terhadap pengobatan dalam kondisi seperti kanker.

Pustaka untuk Membuat Peta Panas dengan Python

Python adalah bahasa populer untuk analisis dan visualisasi data. Ini karena sintaksisnya yang sederhana dan ekosistem yang luas. Ada beberapa pustaka yang bisa Anda gunakan untuk membuat peta panas dengan Python. Ini termasuk:

  • Matplotlib – Pustaka visualisasi data yang populer. Ini adalah perpustakaan tingkat rendah yang menyediakan lebih banyak opsi penyesuaian tetapi rumit.
  • Seaborn – Pustaka visualisasi ini dibangun di atas Matplotlib dan menyederhanakan beberapa fungsinya sambil memberikan visualisasi yang terlihat lebih baik.
  • Plotly – Ini adalah pustaka visualisasi yang menyediakan API yang mudah digunakan untuk membuat Peta Panas dengan Python.
  Cara Menghitung Langkah di iPhone dan Apple Watch

Di bagian selanjutnya, kita akan mengeksplorasi cara membuat peta panas menggunakan semua pustaka ini.

Bagaimana Cara Menghasilkan Peta Panas?

Pada bagian ini, saya akan mengeksplorasi cara membuat peta panas menggunakan Matplotlib, Seaborn, dan Plotly. Untuk kode, saya akan menggunakan Google Colab. Ini adalah instance Notebook Python gratis yang menggunakan Infrastruktur Google untuk menjalankan kode Anda. Tidak memerlukan pengaturan, jadi Anda juga dapat menggunakannya untuk mengikuti. Untuk memulai, kita akan membahas Matplotlib terlebih dahulu.

Matplotlib

Untuk memulai, kita mulai dengan mengimpor library Matplotlib.

import matplotlib.pyplot as plt

Kami juga membutuhkan NumPy untuk menghasilkan kumpulan data acak.

import numpy as np

Untuk menghasilkan dataset, kami akan menambahkan kode berikut:

# Creating a seed for reproducibility
np.random.seed(2)

# Generating 10 x 10 array of integers between 1 and 50
data = np.random.randint(low = 1, high = 50, size = (10, 10))

Untuk memplot data, kami menggunakan metode imshow. Kami mengirimkan data sebagai argumen. Kita bisa berbuat lebih banyak dengan meneruskan argumen tambahan yang akan kita bahas nanti.

plt.imshow(data)

Jika Anda menjalankan sel, Anda akan melihat peta panas.

Meskipun ini bagus, ada banyak opsi penyesuaian yang tersedia untuk Anda. Sebagai permulaan, Anda dapat mengubah warna yang digunakan pada gambar menggunakan argumen cmap yang Anda berikan ke imshow. Misalnya, jika Anda ingin mengubah warna yang digunakan oleh peta panas menjadi warna biru yang berbeda, Anda akan membuat plot dengan yang berikut ini.

plt.imshow(data, cmap = 'Blues')

Daftar lengkap opsi cmap ditemukan Di Sini. Bagaimanapun, hasil di atas adalah:

Peta panas akan lebih berguna jika ada kunci untuk menjelaskan apa yang diwakili oleh warna. Untuk melakukannya, tambahkan kode berikut:

plt.colorbar()

Setelah ini, Anda akan mendapatkan gambar yang terlihat seperti ini:

Bilah warna berguna, tetapi dalam beberapa kasus, Anda mungkin ingin memberi anotasi pada nilai yang berbeda sehingga pemirsa dapat melihat dengan tepat apa yang diwakili. Untuk melakukannya, Anda akan menulis teks di setiap sel menggunakan plt.text().

for i in range(data.shape[0]):
   for j in range(data.shape[1]):
      plt.text(j, i, '%d' % data[i, j],
         horizontalalignment="center",
         verticalalignment="center",
      )

Hal terakhir yang akan kita lakukan dengan peta panas adalah menyetel label centang pada sumbu. Kita akan menggunakan fungsi plt.xticks untuk sumbu x dan fungsi plt.yticks untuk sumbu y. Metode ini disebut dengan cara yang sama; satu-satunya perbedaan adalah sumbu yang dipengaruhi oleh setiap metode.

  9 Server Websocket untuk Aplikasi Real-time yang Andal

Argumen pertama adalah daftar tempat untuk memasukkan tanda centang. Ini direpresentasikan sebagai array indeks. Argumen berikut adalah daftar sebenarnya dari label yang akan dimasukkan. Berikut adalah contoh bagaimana kita akan menyisipkan tanda centang:

x_labels = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
y_labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']

plt.xticks(np.arange(len(x_labels)), labels=x_labels)
plt.yticks(np.arange(len(y_labels)), labels=y_labels)

Dan itu saja! Begitulah cara Anda membuat peta panas di Matplotlib. Solusi kode lengkap dirinci di bawah ini.

import numpy as np
import matplotlib.pyplot as plt

# Creating a seed for reproducibility
np.random.seed(2)

# Generating 10 x 10 array of integers between 1 and 50
data = np.random.randint(low = 1, high = 50, size = (10, 10))

# Creating a plot with blue as a color
plt.imshow(data, cmap = 'Blues')

# Displaying a color bar
plt.colorbar()

# Annotating values
for i in range(data.shape[0]):
   for j in range(data.shape[1]):
      plt.text(j, i, '%d' % data[i, j],
         horizontalalignment="center",
         verticalalignment="center",
      )

# Creating lists of tick labels
x_labels = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
y_labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']

# Adding the tick labels
plt.xticks(np.arange(len(x_labels)), labels=x_labels)
plt.yticks(np.arange(len(y_labels)), labels=y_labels)

Namun, menggunakan Matplotlib bukanlah solusi termudah. Seperti yang akan kita lihat selanjutnya, perpustakaan lain, seperti Seaborn dan Matplotlib, menyederhanakan proses pembuatan peta panas.

Yg keturunan dr laut

Di bagian ini, kita akan membuat ulang contoh sebelumnya menggunakan Seaborn. Seaborn adalah perpustakaan yang dibangun di atas Matplotlib. Ini memberikan abstraksi yang membuatnya lebih mudah untuk dikerjakan. Untuk membuat peta panas, kita mulai dengan mengimpor pustaka yang akan kita gunakan.

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

Kami mengimpor Matplotlib karena Seaborn membutuhkannya. Selanjutnya, kita juga perlu mengimpor NumPy untuk menghasilkan kumpulan data acak. Terakhir, kita harus mengimpor Seaborn.

  Apa Perbedaan Casing, Pelindung, Kulit, dan Penutup Ponsel?

Selanjutnya, kami membuat dataset menggunakan NumPy.

# Creating a seed for reproducibility
np.random.seed(2)

# Generating 10 x 10 array of integers between 1 and 50
data = np.random.randint(low = 1, high = 50, size = (10, 10))

Setelah melakukan ini, kami membuat daftar label centang kami.

# Tick labels
x_labels = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
y_labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']

Lalu terakhir, kita membuat peta panas sebenarnya dengan memanggil fungsi peta panas dari modul sn.

hm = sn.heatmap(data = data, cmap = 'Oranges', annot = True, yticklabels = y_labels, xticklabels = x_labels)

Seperti yang Anda lihat, kami melewati beberapa argumen. Berikut penjelasan masing-masing:

  • data adalah kumpulan data yang ingin kita plot
  • cmap adalah skema warna yang kita inginkan untuk membuat heatmap
  • annot menyatakan apakah kita ingin membubuhi keterangan titik data dengan nilai sebenarnya
  • yticklabels adalah daftar label yang kita inginkan untuk tick sumbu vertikal
  • xticklabels adalah daftar label untuk tick sumbu horizontal.

Terakhir, kami menunjukkan plot menggunakan kode:

plt.show()

Ini akan menghasilkan peta panas berikut:

Secara plot

Untuk Plotly, prosesnya mirip dengan Seaborn. Berikut adalah garis besar kode untuk membuat peta panas di Plotly:

import plotly.express as px
import numpy as np

# Creating a seed for reproducibility
np.random.seed(2)

# Generating 10 x 10 array of integers between 1 and 50
data = np.random.randint(low = 1, high = 50, size = (10, 10))

# Tick labels
x_labels = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
y_labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']

px.imshow(data, text_auto = True, x = x_labels, y = y_labels, color_continuous_scale="greys")

Seperti yang Anda lihat, peta panas dibuat di baris terakhir menggunakan fungsi px.imshow(). Fungsi ini mengambil data untuk diplot sebagai argumen posisi. Selain itu, dibutuhkan argumen kata kunci sebagai berikut:

  • text_auto adalah boolean yang mengaktifkan anotasi saat disetel ke true
  • x adalah daftar label centang sumbu x
  • y adalah daftar label centang pada sumbu y
  • color_continuous_scale menentukan skema warna yang digunakan untuk grafik.

Seperti yang Anda lihat, Plotly lebih sederhana daripada Seaborn dan Matplotlib. Selain itu, grafik yang dihasilkan bersifat interaktif dibandingkan dengan library lain yang menghasilkan gambar statis.

Berikut screenshot hasil akhirnya:

Kata Akhir

Pada artikel ini, kami membahas cara membuat peta panas dengan Python. Kami membahas perpustakaan utama – Matplotlib, Seaborn, dan Plotly. Kami juga melihat bagaimana Seaborn dan Plotly memberikan abstraksi yang disederhanakan melalui Matplotlib. Salah satu penggunaan penting Heatmaps adalah melacak bagaimana orang menggunakan situs web Anda.

Selanjutnya, periksa alat peta panas yang memberi tahu Anda di mana pengguna Anda mengklik.