Visualisasi dengan Matplotlib : Histogram

Visualisasi Dengan Matplotlib - Matplotlib

Histogram digunakan untuk menampilkan distribusi atau sebaran dari kumpulan data numerik. Dalam histogram, data dibagi menjadi beberapa interval (bin), dan frekuensi data dalam setiap interval ditampilkan dalam bentuk batang.

Dalam artikel ini akan dibahas mengenai apa itu histogram, dan bagaimana cara membuatnya menggunakan Matplotlib.

Perbedaan Histogram dengan Barchart

  • Jenis Data: Histogram digunakan untuk menampilkan data numerik kontinu, misalnya tinggi badan siswa, jumlah penjualan. SedNangkan barchart digunakan untuk menampilkan data kategorikal. Data kategorikal terdiri dari kategori atau kelompok yang terpisah dan tidak memiliki urutan numerik inheren, misalnya jenis kelamin, propinsi, jenis produk, dll.
  • Representasi Data: Histogram menampilkan frekuensi atau jumlah data dalam interval (bin) tertentu pada sumbu x. Lebar bin menunjukkan rentang nilai yang diwakili oleh setiap batang, dan tinggi batang mewakili frekuensi. Barchart menampilkan nilai numerik terkait dengan setiap kategori pada sumbu x. Tinggi batang mewakili besarnya nilai untuk setiap kategori.
  • Jenis Analisis Data: Histogram digunakan untuk memahami sebaran data numerik, mengidentifikasi pola dan tren seperti tendensi sentral (mean, median) dan sebaran data (varians, standar deviasi). Sedangkan barchart digunakan untuk membandingkan nilai numerik antar kategori, berguna untuk melihat kategori mana yang memiliki nilai tertinggi atau terendah, serta untuk mengidentifikasi pola atau perbedaan antar kategori, misalnya nilai penjualan per produk, tinggi badan maksimal per kelas, dll.

 

Membuat Histogram dalam Matplotlib

Import package yang akan digunakan. Dalam hal ini kita gunakan matplotlib untuk visualisai dan numpy untuk membuat data dummy.

import matplotlib.pyplot as plt
import numpy as np

Untuk contoh pertama kita akan menggunakan data berikut ini.

# Contoh data tinggi badan dalam cm
tinggi_badan = [145, 150, 152, 148, 155, 160, 140,
                142, 157, 145, 149, 151, 153,
                158, 162, 143, 147, 154, 156, 159]

Untuk menampilkan histogram kita gunakan fungsi plt.hist() atau axes.hist()

# Membuat histogram
plt.hist(tinggi_badan)

# Menambahkan label dan judul
plt.xlabel('Tinggi Badan (cm)')
plt.ylabel('Frekuensi')
plt.title('Histogram Tinggi Badan')

# Menampilkan grafik
plt.show()
histogram dengan matplotlib

 

Kustomisasi Histogram

Fungsi hist() memiliki beberapa parameter yang penting untuk melakukan kustomisasi, di antaranya yaitu:

  • bins : Menentukan jumlah interval (bin) pada sumbu x.
  • range : Menentukan lebar interval atau rentang data yang ditampilkan (misalnya, (0, 10)). Data di luar rentang ini akan diabaikan.
  • color : Mengatur warna batang histogram
  • edgecolor : Menentukan warna garis/tepi batang histogram agar lebih mudah dibaca
  • histtype : Memilih gaya plot (misalnya, 'bar', 'step')
  • alpha : Mengatur transparansi batang, sangat bermanfaat ketika kita membandingkan sebaran beberapa dataset dalam satu grafik
  • grid : Menampilkan grid pada grafik
  • density: Jika diatur ke True, histogram akan menampilkan kepadatan probabilitas daripada frekuensi.

 

Berikut ini contoh penggunaan beberapa parameter di atas untuk melakukan kustomisasi

plt.hist(tinggi_badan, bins=5, edgecolor='black', color='grey')

plt.xlabel('Tinggi Badan (cm)')
plt.ylabel('Frekuensi')
plt.title('Histogram Tinggi Badan')

plt.show()
Histogram dengan Matplotlib

 

Membandingkan sebaran beberapa dataset

Histogram dapat digunakan untuk membandingkan sebaran dari dua atau lebih dataset. Dengan menempatkan histogram berdampingan atau bersamaan dalam satu grafik, kita dapat dengan mudah melihat kesamaan dan perbedaan dalam pola distribusi.


Membandingkan Dua histogram dalam satu grafik

Untuk membandingkan beberapa histogram dalam satu grafik yang sama, kita dapat memanfaatkan parameter alpha untuk mengatur transparansi tiap histogram.

Dalam contoh ini kita akan menggunakan data yang digenerate secara random menggunakan fungsi numpy.

Kita buat dua dataset tinggi badan dengan sebaran normal, menggunakan fungsi random.normal().

Fungsi ini menerima 3 parameter : nilai mean sebagai pusat distribusi, standar deviasi, dan ukuran/jumlah dataset.

tinggi_badan_grup1 = np.random.normal(145, 6, 100)
tinggi_badan_grup2 = np.random.normal(155, 7, 100)

 

plt.hist(tinggi_badan_grup1, bins=20, alpha=0.5, 
         label='Grup 1', edgecolor='grey')
plt.hist(tinggi_badan_grup2, bins=20, alpha=0.5, 
         label='Grup 2', edgecolor='brown')

plt.xlabel('Tinggi Badan (cm)')
plt.ylabel('Frekuensi')
plt.title('Histogram Tinggi Badan Dua Kelompok')
plt.legend()

plt.show()

 

Membandingkan Dua Histogram dengan Subplot

Kita juga dapat membandingkan sebaran beberapa grup dengan menampilkan histogramnya secara bersisihan menggunakan subplot.

fig, axs = plt.subplots(2,layout='constrained')

axs[0].hist(tinggi_badan_grup1, bins=20, edgecolor='black')
axs[1].hist(tinggi_badan_grup2, bins=20, edgecolor='black')

axs[0].set_title('Tinggi badan Kelompok 1')
axs[1].set_title('Tinggi badan Kelompok 2')

fig.suptitle('Perbandingan Sebaran Tinggi Badan Antar Kelompok\n')

plt.show()

 

Wrapping Up

Histogram adalah alat yang sangat berguna untuk memvisualisasikan distribusi data numerik. Dengan Matplotlib, kita dapat dengan mudah membuat histogram yang informatif dan menarik. Memahami parameter-parameter penting seperti bins, range, dan density dapat membantu dalam membuat histogram yang sesuai dengan kebutuhan analisis data.

Simak juga tutorial-tutorial sebelumnya