cara membuat bar plot dengan matplotlib python

Cara Membuat Bar Plot dengan Matplotlib Python

Posted by

Bar plot atau bar chart adalah jenis plot yang direpresentasikan dengan bar atau batang, dimana panjang bar adalah representasi dari ukuran sebuah fitur atau variabel. Bar plot biasanya merepresentasikan jumlah data dari suatu kategori tertentu.

Disini kita akan belajar cara membuat bar plot dengan Matplotlib, termasuk diantaranya membuat horizontal bar plot dan grouped bar plot.

Membuat Bar Plot dengan Matplotlib

Misalnya kita memiliki data kategori yaitu prodi yang berisi nama-nama program studi dan data numerik jumlah_mhs yang berisi jumlah mahasiswa. Kita ingin membuat bar plot yang menampilkan jumlah mahasiswa untuk tiap program studi. Perhatikan kode berikut.

import matplotlib.pyplot as plt
%matplotlib inline

prodi = ['Matematika', 'Statistika', 'Biologi', 'Kimia', 'Teknik Informatika', 'Fisika']
jumlah_mhs = [108, 134, 167, 155, 120, 97]

plt.figure(figsize=(12,7))
plt.bar(prodi, jumlah_mhs, color='lightcoral')

plt.title('Jumlah Mahasiswa Per Program Studi', size=16)
plt.ylabel('Jumlah Mahasiswa', size=14)
plt.xticks(size=12)
plt.yticks(size=12)

plt.show()
contoh bar plot matplotlib

Untuk membuat bar plot, kita dapat menggunakan method bar() dari Matplotlib yang diberi argumen berupa data yang akan ditempatkan pada x-axis dan y-axis. Dalam contoh ini, prodi akan dijadikan data pada x-axis, sedangkan jumlah_mhs dijadikan data pada y-axis.

Parameter color dapat ditambahkan sebagai argumen pada method bar() untuk mengatur warna bar. Kita juga dapat mempercantik plot dengan menambahkan judul dengan plt.title(), serta mengatur aspek-aspek lainnya seperti xlabel, ylabel, xticks, yticks, dan lain sebagainya.

Horizontal Bar Plot

Jika contoh sebelumnya adalah membuat bar plot vertikal , sekarang kita akan membuat bar plot horizontal.

Pembuatan bar plot horizontal tidak jauh berbeda dengan bar plot vertikal. Yang membedakan tentunya hanya method yang digunakan saja. Untuk membuat bar plot horizontal kita menggunakan method barh(). Perhatikan kode berikut.

import matplotlib.pyplot as plt
%matplotlib inline

prodi = ['Matematika', 'Statistika', 'Biologi', 'Kimia', 'Teknik Informatika', 'Fisika']
jumlah_mhs = [108, 134, 167, 155, 120, 97]

plt.figure(figsize=(12,7))
plt.barh(prodi, jumlah_mhs, color='yellowgreen')

plt.title('Jumlah Mahasiswa Per Program Studi', size=16)
plt.xlabel('Jumlah Mahasiswa', size=14)
plt.xticks(size=12)
plt.yticks(size=12)

plt.show()

Baca Juga: Mengatur Warna Scatter Plot Berdasarkan Kategori di Python

Output:

Dapat dilihat bahwa hampir semua kodenya sama dengan pembuatan bar plot vertikal kecuali method yang digunakan saja, yaitu barh().

Grouped Bar Plot

Terkadang kita perlu membuat bar plot yang dikelompokkan berdasarkan kategori tertentu. Misalnya disini kita ingin memvisualisasikan jumlah mahasiswa laki-laki dan perempuan untuk tiap program studi. Perhatikan kode berikut.

import numpy as np

import matplotlib.pyplot as plt
%matplotlib inline

prodi = ['Matematika', 'Statistika', 'Biologi', 'Kimia', 'Teknik Informatika', 'Fisika']
mahasiswa = [56, 70, 76, 60, 104, 74]
mahasiswi = [78, 66, 88, 79, 46, 62]

x = np.arange(len(prodi))
width = 0.35

fig, ax = plt.subplots(figsize=(12, 7))

mhsa = ax.bar(x - width/2, mahasiswa, width, label='Laki-laki', color='steelblue')
mhsi = ax.bar(x + width/2, mahasiswi, width, label='Perempuan', color='lightcoral')

ax.set_title('Jumlah Mahasiswa/i Per Program Studi', size=16)
ax.set_ylabel('Jumlah Mahasiswa', size=14)
ax.set_xticks(x)
ax.set_xticklabels(prodi, size=12)
ax.legend(fontsize=14)

plt.show()

Baca Juga: 5 Jenis Visualisasi Data Populer di Python dengan Matplotlib

Output:

contoh grouped bar plot dengan matplotlib

Pada kode di atas, kita memiliki 3 data yaitu prodi, mahasiswa, dan mahasiswi. Untuk membuat grouped bar plot kita menggunakan cara explicit yakni dengan mendefinisikan figure dan axes.

kita perlu mendefinisikan width atau lebar dari bar untuk tiap kategori dan array sejumlah prodi yang ada, dalam hal ini kita definisikan objek array pada variabel x.

Selanjutnya, kita membutuhkan dua bar() yang kita simpan pada variabel mhsa untuk merepresentasikan jumlah mahasiswa (laki-laki) dan mhsi untuk merepresentasikan jumlah mahasiswi (perempuan).

Kita juga dapat mengatur aspek-aspek lainnya pada axes.

Semoga bermanfaat!