Bar Chart

Bar chart menjadi format visualisasi yang banyak digunakan dalam menggambarkan data diskrit seperti membandingkan dua kumpulan data atau lebih. Halaman ini membahas bagaimana membuatnya dalam Python.

Definisi

Bagan batang atau grafik batang adalah bagan atau grafik yang menyajikan data kategorikal dengan batang persegi panjang dengan tinggi atau panjang yang sebanding dengan nilai yang diwakilinya. Batang dapat diplot secara vertikal atau horizontal. (Wikipedia)

Video

Matplotlib

Membuat Bar Chart Sederhana Hingga Kustom dengan Matplotlib

Bar Chart Dengan Matplotlib

Seaborn

Memvisualisasikan Data Kategori Dengan Seaborn

Visualisasi Bar Chart

Matplotlib

Membuat bar chart sederhana menggunakan matplotlib termasuk cukup sederhana. Kita membutuhkan data points yang ingin kita visualisasikan, lalu dilanjutkan dengan menginisialisasi kanvas kosong dan meletakkan komponen-komponen bar chart seperti bar, x dan y label yang dapat dilakukan menggunakan plt.bar() ataupun from scratch. Kemudian diakhiri dengan menampilkan hasil plotting. Berikut merupakan contoh code bar chart pada matplotlib.

Menggunakan plt.bar()

import numpy as np
import matplotlib.pyplot as plt
 
  
# membuat dataset
data = {'C':20, 'C++':15, 'Java':30,
        'Python':35}
courses = list(data.keys())
values = list(data.values())
  
fig = plt.figure(figsize = (10, 5))
 
# membuat bar plot
plt.bar(courses, values, color ='maroon',
        width = 0.4)
 
plt.xlabel("Courses offered")
plt.ylabel("No. of students enrolled")
plt.title("Students enrolled in different courses")
plt.show()

Sumber contoh: https://www.geeksforgeeks.org/bar-plot-in-matplotlib/

Membuat grouped bar chart from scratch

# import library
import matplotlib.pyplot as plt
import numpy as np


labels = ['G1', 'G2', 'G3', 'G4', 'G5']     # label untuk sumbu x
men_means = [20, 34, 30, 35, 27]            # data point 1
women_means = [25, 32, 34, 20, 25]          # data point 2

x = np.arange(len(labels))                  # lokasi label pada sumbu x
width = 0.35                                # ukuran lebar bar

fig, ax = plt.subplots()                    # inisialisasi plot
rects1 = ax.bar(x - width/2, men_means, width, label='Men')      # plot bar data 1  
rects2 = ax.bar(x + width/2, women_means, width, label='Women')  # plot bar data 2


ax.set_ylabel('Scores')                        # label sumbu y
ax.set_title('Scores by group and gender')     # judul
ax.set_xticks(x)                               # set lokasi label
ax.set_xticklabels(labels)                     # meletakkan label x
ax.legend()                                    # menambahkan legend

ax.bar_label(rects1, padding=3)                # meletakkan bar label pada data 1
ax.bar_label(rects2, padding=3)                # meletakkan bar label pada data 2

fig.tight_layout()

plt.show()    # menampilkan hasil chart

Sumber contoh: https://matplotlib.org/stable/gallery/lines_bars_and_markers/barchart.html

Untuk kustomisasi bar dapat dilihat pada dokumentasi matplotlib berikut https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.bar.html#matplotlib.axes.Axes.bar

Seaborn

Vertical Bar Plot Tunggal

Dengan seaborn, kita bisa membuat barchart hanya dengan 3 line code. Seaborn telah menyediakan fungsi yang dapat digunakan untuk memvisualisasikan berbagai macam chart termasuk bar chart hanya dengan input dataframe dan beberapa argument. Berikut code python untuk visualisasi bar plot pada seaborn.

# import library
import seaborn as sns

sns.set_theme(style="whitegrid")                        # set tema
tips = sns.load_dataset("tips")                         # load dataset
ax = sns.barplot(x="day", y="total_bill", data=tips)    # plot bar chart

Sumber contoh: https://seaborn.pydata.org/generated/seaborn.barplot.html

Vertical Bar Plot By Group

Pada bagian ini berbeda dengan bagian sebelumnya yang terdiri atas single bar plot. Berikut adalah cara visualisasi bar chart berdasarkan grouping tertentu pada dataframe tertentu. Pada visualisasi ini digunakan fungsi catplot berbeda dari sebelumnya yang menggunakan barplot. Berikut ada implementasi code nya dalam python.

# import library dan set tema
import seaborn as sns
sns.set_theme(style="whitegrid")

# load dataset
penguins = sns.load_dataset("penguins")

# Menggambar bar plot dengan sns.catplot
g = sns.catplot(
    data=penguins, kind="bar",
    x="species", y="body_mass_g", hue="sex",
    ci="sd", palette="dark", alpha=.6, height=6
)

# menentukan axis label dan legend
g.despine(left=True)
g.set_axis_labels("", "Body mass (g)")
g.legend.set_title("")

Sumber contoh: https://seaborn.pydata.org/examples/grouped_barplot.html

Last updated