Visualisasi Dengan Pandas - Histogram

visualisasi-dengan-pandas-histogram

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

433-gambar01

 

Menampilkan distribusi Nilai1 dengan menggunakan fungsi hist()

df.hist(column='Nilai1')

 

Grafik histogram akan tampil sebagai berikut

433-gambar02

 

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.