Visualisasi Dengan Matplotlib : Bar Chart

Visualisasi Dengan Matplotlib - Bar Chart

Matplotlib merupakan pustaka Python paling populer untuk membuat berbagai macam visualisasi. Library ini menyediakan berbagai fungsi dan object yang memungkinkan kita untuk melakukan kustomisasi terhadap grafik yang kita buat. Banyak library yang dibangun di atas matplotlib, seperti Seaborn, Bokeh, Pandas, dll.

Salah satu jenis chart atau grafik yang paling banyak digunakan adalah bar chart, karena relatif sederhana dan mudah difahami.

Bar chart atau diagram batang pada umumnya digunakan untuk :

  • Membandingkan nilai antar kategori. Misalnya untuk membandingkan nilai penjualan dari beberapa jenis produk, atau membandingkan tingkat kelahiran per propinsi, dll.
  • Menunjukkan ranking : jika diagram batang ditampilkan berurutan dari nilai yang terkecil atau terbesar, kita dapat melihat urutan atau rankingnya.
  • Sebaran nilai untuk variabel kategorikal : jika nilai yang ditampilkan adalah frekuensi (count), maka bar chart dapat menunjukkan sebaran atau komposisi nilai untuk sebuah variabel kategorikal.

Dalam tutorial ini, kita akan mempelajari cara membuat diagram batang menggunakan matplotlib.

Sedangkan tutorial membuat bar chart menggunakan Pandas dapat dibaca pada artikel : Visualisasi Dengan Pandas - Bar Chart.

Package yang akan kita gunakan adalah matplotlib.pyplot

import matplotlib.pyplot as plt

 

Membandingkan nilai antar kategori

produk = ['Produk 1', 'Produk 2', 'Produk 3']
penjualan = [332, 594, 108]  

plt.bar(produk, penjualan)  # Create the bar plot
plt.xlabel('Nama Produk')
plt.ylabel('Total Penjualan (ribu pcs)')
plt.title('Penjualan per Produk')
plt.show()

 

 

Menunjukkan ranking

produk = ['Produk 1', 'Produk 2', 'Produk 3']
penjualan = [332, 594, 108]  

plt.bar(produk, penjualan)  # Create the bar plot
plt.xlabel('Nama Produk')
plt.ylabel('Total Penjualan (ribu pcs)')
plt.title('Penjualan per Produk')
plt.show()

 

 

Menambahkan Label Nilai Pada Bar Chart

Untuk menambahkan label pada barchart, kita dapat menggunakan fungsi bar_label() pada objek axes, dengan parameter barchart_container.

#Data
produk = ['Produk 1', 'Produk 2', 'Produk 3']
penjualan = [332, 594, 108]  

 

Untuk mendapatkan object axes, kita panggil fungsi plt.subplots(), sedangkan objek barchart_container bisa kita dapatkan dari return value fungsi bar().

Selanjutnya barchart_container tersebut kita gunakan sebagai parameter pada fungsi ax.bar_label()

fig, ax = plt.subplots() #simpan object Axes

bc = ax.bar(produk, penjualan)  # Buat bar chart, simpan object barchart_container 
ax.bar_label(bc) #gunakan variabel tsb sebagai parameter fungsi bar_label

 

Berbeda dengan contoh sebelumnya, pada contoh ini kita akan lakukan setting label sumbu x, sumbu y, dan judul melalui fungsi set pada object Axes.

Selain itu kita juga akan set batas atas y ke 650 untuk memberi space di atas label, dengan parameter ylim.

ax.set(xlabel='Nama Produk', 
       ylabel='Total Penjualan (ribu pcs)', 
       title='Penjualan per Produk',
       ylim=(0,650))

plt.show()

 

 

Mengubah Letak dan Format Label

Kita dapat menyesuaikan letak label dengan menggunakan parameter label_type. Sedangkan format font dapat diatur dengan parameter color, fontweight, ataupun parameter lain seperti parameter fmt.

 

produk = ['Produk 1', 'Produk 2', 'Produk 3']
penjualan = [332, 594, 108]

fig, ax = plt.subplots() 
bc = ax.bar(produk, penjualan)  

#gunakan parameter untuk kustomisasi
ax.bar_label(bc, label_type='center', color='w', fontweight='bold') 

ax.set(xlabel='Nama Produk',
       ylabel='Total Penjualan (ribu pcs)',
       title='Penjualan per Produk',
       ylim=(0,650))

plt.show()

 

 

Horizontal Bar Chart dengan Label

Untuk membuat horizontal barchart, kita gunakan fungsi barh(). Kita gunakan parameter padding dalam fungsi bar_label untuk memberi jarak antara tepi batang dan label.

 

produk = ['Produk 3', 'Produk 1', 'Produk 2']
penjualan = [108, 332, 594]

fig, ax = plt.subplots()
bc = ax.barh(produk, penjualan)
ax.bar_label(bc, color='b', fontweight='bold', padding=3)

ax.set(ylabel='Nama Produk',
       xlabel='Total Penjualan (ribu pcs)',
       title='Penjualan per Produk',
       xlim=(0,650))

plt.show()

 

 

Mengubah Warna Salah Satu Elemen Bar Chart

Kadang kala kita perlu memberikan penekanan (highlight) kepada suatu nilai tertentu, misalnya nilai minimum atau maksimum.
Kita dapat menggunakan warna yang berbeda untuk memberikan penekanan tersebut.

Kita dapat mengubah salah satu batang pada diagram, dengan menggunakan fungsi set_color().

  • Untuk mengubah warna batang, kita gunakan bar_container yang dikembalikan oleh fungsi plt.plot().
  • Untuk mengubah warna label, kita gunakan object text yang dikembalikan oleh fungsi bar_label().

 

produk = ['Produk 1', 'Produk 2', 'Produk 3', 'Produk 4' ]
penjualan = [332, 594, 108, 424]

fig, ax = plt.subplots()

bcont = ax.barh(produk, penjualan)  
btext = ax.bar_label(bc, fontsize=8, padding=3)

bcont[2].set_color('r') #set warna batang ke 3 = red
btext[2].set_color('b') #set warna label ke 3 = blue

ax.set(ylabel='Nama Produk',
       xlabel='Total Penjualan (ribu pcs)',
       title='Penjualan per Produk',
       xlim=(0,650))

plt.show()

 

 

Wrapping Up

Bar chart alias diagram batang merupakan salah satu jenis diagram yang paling banyak digunakan karena kesederhanaan dan kemudahannya. Matplotlib menyediakan fungsi dan object yang dapat kita kustomisasi sesuai dengan kebutuhan kita.

Simak juga tutorial-tutorial sebelumnya tentang visualisasi data