Histogram adalah jenis grafik yang sangat penting untuk memahami distribusi dalam dataset yang kita miliki. Pandas menyediakan fungsi-fungsi untuk memudahkan dalam membuat grafik secara langsung dari dataset.
Untuk membuat grafik histogram biasanya hanya dibutuhkan satu dimensi data berjenis numerik. Hal ini karena histogram sendiri dimaksudkan untuk menunjukkan jumlah record untuk tiap nilai atau kumpulan nilai dalam dataset.
Dalam Pandas, kita cukup menggunakan DataFrame dan fungsi di dalamnya untuk menampilkan grafik histogram yang menunjukkan distribusi nilai dalam dataset. Nilai default dalam fungsi ini akan membantu untuk memudahkan dalam memulai, tetapi ada banyak fitur dan opsi yang dapat digunakan.
Ada beberapa cara untuk membuat grafik histogram pada Pandas. Berikut ini adalah fungsi-fungsi yang dapat digunakan untuk membuat grafik histogram
pd.DataFrame.hist(column='nama_kolom')
pd.DataFrame.plot(kind='hist')
pd.DataFrame.plot.hist()
Dalam artikel ini akan banyak dibahas mengenai penggunaan fungsi hist() pada Pandas.
Pandas Histogram
Fungsi .hist() dengan opsi default sudah dapat memenuhi sebagian besar kebutuhan kita. Namun, hal menarik mulai terjadi saat kita menggunakan parameter atau opsi yang disediakan.
Yuk kita coba dengan menggunakan dataset sederhana.
Import paket yang dibutuhkan
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
Buat dataset yang terdiri dari 1000 record menggunakan nilai acak
np.random.seed(seed=42)
data_points = 1000
df = pd.DataFrame(data=list(zip(np.random.choice(["Matematika", "Biologi"], size=data_points),
np.random.beta(15, 10, size=data_points),
np.random.beta(30, 4, size=data_points))),
columns=['Mata_Pelajaran', 'Nilai1', 'Nilai2'])
df.head()
Contoh data yang dibuat akan tampil sebagai berikut
Menampilkan distribusi Nilai1 dengan menggunakan fungsi hist()
df.hist(column='Nilai1')
Grafik histogram akan tampil sebagai berikut
Parameter bins
Parameter bins mengontrol jumlah bin atau interval yang akan digunakan dalam histogram.
Pandas akan mengelompokkan data ke dalam bin, atau bucket. Kemudian panda akan menghitung berapa banyak nilai yang masuk ke dalam bucket tersebut, dan memplot hasilnya.
Secara sederhana bin menentukan berapa banyak batang yang ingin ditampilkan dalam histogram.
Misalkan parameter bins kita beri nilai 200
df.hist(column='Nilai1', bins=200)
Maka akan tampil grafik histogram dengan 200 batang
Jika memberi nilai bins 200 dirasa kurang sesuai, maka kita coba memberikan nilai bins menjadi 35
df.hist(column='Nilai1', bins=35)
Maka akan tampil sebagai berikut
Selain menentukan jumlah batang yang ingin ditampilkan, parameter bins juga dapat digunakan untuk menentukan range nilai yang digunakan. Misalkan kita akan membuat 3 bucket dengan range nilai lebih kecil dari 0.5, antara 0.5 dan 0.75, dan lebih besar dari 0.75. Kita dapat memberikan nilai pada parameter bins seperti berikut
df.hist(column='Nilai1', bins=[0, .5, .75, 1])
Maka grafik histogram yang dihasilkan akan tampak sebagai berikut
Menampilkan Multiple Groups
Kita dapat menampilkan multiple group dari sebuah kolom dengan menggunakan parameter by. Misal kita ingin menampilkan distribusi Nilai1 dari kolom Mata_Pelajaran, maka kita dapat menuliskannya seperti berikut
df.hist(column='Nilai1', by='Mata_Pelajaran')
Maka akan tampil grafik histogram sebagai berikut
Penggunaan Beberapa Parameter Lainnya
Kita dapat mengkustomisasi grafik dengan menggunakan parameter lainnya yang dimiliki oleh fungsi hist(). Berikut contoh penggunaan beberapa parameter yang juga terdapat pada fungsi plot pada matplotlib
df.hist(column='Nilai1', bins=30,
grid=False,
figsize=(10, 4),
legend=True,
orientation='horizontal',
color='#FFCF56')
Grafik akan tampil dengan ukuran 10 x 4 inchi seperti berikut
Untuk menampilkan multiple group, kita dapat menggunakan fungsi plot() dengan parameter kind='hist'.
df.plot(kind='hist', bins=30,
alpha=0.7,
title='Histogram Nilai Mata Pelajaran',
rot=45,
grid=True,
figsize=(10,4),
fontsize=15,
color=['#A0E8AF', '#FFCF56'])
plt.xlabel('Nilai')
plt.ylabel("Jumlah Siswa")
Grafik akan tampil dengan ukuran 10 x 4 inchi seperti berikut
Wrapping Up
Dalam artikel ini, telah dijelaskan secara singkat mengenai penggunaan fungsi pada Pandas untuk menampilkan grafik histogram. Histogram adalah alat yang sangat berguna untuk memahami sebaran data, mengidentifikasi pola, dan menemukan insight dalam dataset yang kita miliki.