Visualisasi Data dari Pandas - 3
Plotting Bar Graph dan Histogram dari Pandas DataFrame
Pada materi sebelumnya kita telah mempelajari bagaimana membuat line plot dan scatter plot menggunakan Pandas DataFrame.
Pandas juga menyediakan berbagai jenis visualisasi lain yang sangat berguna dalam proses Exploratory Data Analysis (EDA).
Dua jenis visualisasi yang akan dipelajari pada materi ini adalah:
- Bar Graph untuk membandingkan nilai antar kategori atau observasi.
- Histogram untuk melihat distribusi data numerik.
Keduanya dapat dibuat langsung menggunakan Pandas tanpa harus menulis seluruh kode Matplotlib secara manual.
Konsep Utama
Pandas menyediakan method:
.plot()
yang terintegrasi dengan Matplotlib.
Untuk membuat bar graph, kita dapat menggunakan:
df.plot.bar()
atau:
df.plot(kind="bar")
Sedangkan untuk histogram:
df["column"].plot.hist()
atau:
df["column"].plot(kind="hist")
Secara sederhana:
Pandas DataFrame
│
├── .plot.bar()
│ ↓
│ Bar Graph
│
└── .plot.hist()
↓
Histogram
Persiapan Library
Kita membutuhkan NumPy dan Pandas:
import numpy as np
import pandas as pd
Untuk visualisasi, Pandas akan menggunakan Matplotlib.
Jika ingin menampilkan grafik secara eksplisit:
import matplotlib.pyplot as plt
Sehingga import lengkap:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
Membuat DataFrame Contoh
Sebelum menggunakan dataset kendaraan, kita dapat membuat DataFrame sederhana menggunakan data acak.
x = np.random.rand(10, 4)
df = pd.DataFrame(
x,
columns=["A", "B", "C", "D"]
)
df
DataFrame tersebut memiliki:
- 10 baris;
- 4 kolom;
- nilai numerik acak.
Strukturnya kurang lebih:
| A | B | C | D |
|---|---|---|---|
| 0.32 | 0.52 | 0.11 | 0.76 |
| 0.71 | 0.24 | 0.63 | 0.15 |
| ... | ... | ... | ... |
Nilai aktual akan berbeda karena data dibuat secara acak.
Membuat Bar Graph
Bar graph atau grafik batang digunakan untuk membandingkan nilai antar kategori atau observasi.
Dengan Pandas, kita dapat membuat bar graph menggunakan:
df.plot.bar()
Kemudian:
plt.show()
Contoh:
df.plot.bar()
plt.show()
Cara Kerja Bar Graph
Setiap baris DataFrame akan direpresentasikan sebagai kelompok batang, sedangkan kolom menjadi seri data yang dibandingkan.
Untuk DataFrame:
A B C D
akan terdapat empat seri:
A
B
C
D
dan nilai dari masing-masing baris akan ditampilkan sebagai batang.
Alternatif Menggunakan kind="bar"
Selain:
df.plot.bar()
kita dapat menggunakan:
df.plot(
kind="bar"
)
Contoh lengkap:
df.plot(
kind="bar"
)
plt.show()
Kedua pendekatan tersebut digunakan untuk menghasilkan bar plot.
Perbandingan Sintaks Bar Plot
Method .plot.bar()
df.plot.bar()
Parameter kind
df.plot(
kind="bar"
)
Keduanya merupakan cara yang valid.
Bentuk pertama lebih ringkas, sedangkan bentuk kedua berguna ketika kita ingin menentukan jenis plot melalui parameter kind.
Horizontal Bar Graph
Pandas juga menyediakan horizontal bar graph menggunakan:
df.plot.barh()
Contoh:
df.plot.barh()
plt.show()
Perbedaannya:
bar()
│
└── Batang vertikal
barh()
│
└── Batang horizontal
Horizontal bar graph sering berguna ketika label kategori cukup panjang.
Menggunakan Dataset Car Sales
Sekarang kita dapat menggunakan dataset kendaraan yang telah digunakan pada materi sebelumnya.
car_sales = pd.read_csv("car-sales.csv")
Periksa data:
car_sales.head()
Misalnya dataset memiliki kolom:
Make
Colour
Odometer (KM)
Doors
Price
Sale Date
Total Sales

Membuat Bar Graph dari Dataset
Kita dapat membandingkan merek kendaraan dengan nilai odometer menggunakan:
car_sales.plot(
x="Make",
y="Odometer (KM)",
kind="bar"
)
plt.show()

Pada grafik:
Makedigunakan sebagai kategori pada sumbu X;Odometer (KM)digunakan sebagai nilai yang divisualisasikan.
Memahami Bar Graph pada Data Kategori
Misalnya data:
| Make | Odometer (KM) |
|---|---|
| Toyota | 150000 |
| Honda | 120000 |
| BMW | 80000 |
| Ford | 100000 |
Bar graph akan membantu membandingkan nilai odometer masing-masing kendaraan.
Secara konsep:
Odometer
│
│ █
│ █ █
│ █ █
│ █ █ █
│ █ █ █ █
└──────────────────
Toyota Honda BMW Ford
Visualisasi seperti ini cocok ketika tujuan analisis adalah membandingkan nilai antar kategori.
Kapan Menggunakan Bar Graph?
Bar graph cocok digunakan ketika kita ingin:
- membandingkan beberapa kategori;
- melihat nilai setiap kategori;
- melihat perbedaan antar kelompok;
- menampilkan data agregasi;
- membandingkan jumlah atau nilai antar observasi.
Contoh pertanyaan yang dapat dijawab:
Merek mana yang memiliki nilai tertentu paling tinggi dalam dataset?
Namun, interpretasi akhirnya harus berdasarkan data aktual yang digunakan.
Keterbatasan Bar Graph
Bar graph tidak selalu menjadi pilihan terbaik untuk setiap data.
Jika jumlah kategori sangat banyak, grafik dapat menjadi sulit dibaca.
Contohnya:
Category 1
Category 2
Category 3
...
Category 100
Dalam kondisi tersebut, kita dapat mempertimbangkan:
- horizontal bar graph;
- memilih kategori tertentu;
- melakukan agregasi;
- mengurutkan data;
- menggunakan visualisasi lain.
Pemilihan visualisasi harus mengikuti tujuan analisis dan karakteristik dataset.
Membuat Histogram
Berbeda dengan bar graph, histogram digunakan untuk melihat distribusi data numerik.
Contohnya kita ingin melihat distribusi jarak tempuh kendaraan:
car_sales["Odometer (KM)"].plot.hist()
plt.show()
Alternatifnya:
car_sales["Odometer (KM)"].plot(
kind="hist"
)
plt.show()

Bar Graph vs Histogram
Walaupun bentuk visualnya sama-sama menggunakan batang, konsepnya berbeda.
Bar Graph
Digunakan untuk:
Kategori → Nilai
Contoh:
Toyota → 150000
Honda → 120000
BMW → 80000
Histogram
Digunakan untuk:
Rentang nilai → Frekuensi
Contoh:
0–50 ribu → 10 kendaraan
50–100 ribu → 25 kendaraan
100–150 ribu → 40 kendaraan
150–200 ribu → 15 kendaraan
Jadi, histogram mengelompokkan data numerik ke dalam interval.
Memahami Distribusi Data
Histogram membantu kita memahami bagaimana data tersebar.
Misalnya:
Frekuensi
│
│ █
│ █ █
│ █ █ █ █
│ █ █ █ █ █
│ █ █ █ █ █ █
└────────────────────
Nilai
Dari histogram kita dapat mengeksplorasi:
- pusat distribusi;
- penyebaran;
- bentuk distribusi;
- kemungkinan skewness;
- kemungkinan outlier;
- interval dengan frekuensi tinggi atau rendah.
Histogram merupakan salah satu alat penting dalam Exploratory Data Analysis.
Mengatur Jumlah Bin
Histogram membagi rentang data menjadi beberapa kelompok yang disebut bin.
Secara sederhana:
Data numerik
↓
Dibagi menjadi interval
↓
Bin
↓
Hitung frekuensi
↓
Histogram
Kita dapat mengatur jumlah bin menggunakan parameter:
bins
Contoh:
car_sales["Odometer (KM)"].plot.hist(
bins=20
)
plt.show()
Apa Itu Bin?
Misalnya data memiliki rentang:
0 sampai 200000 KM
Jika kita menggunakan:
bins=4
maka rentang data akan dibagi menjadi beberapa interval.
Secara konseptual:
0–50000
50000–100000
100000–150000
150000–200000
Histogram kemudian menghitung berapa banyak observasi yang berada pada setiap interval.
Pengaruh Jumlah Bin
Jumlah bin memengaruhi tingkat detail histogram.
Bin Terlalu Sedikit
Misalnya:
bins=5
Distribusi akan terlihat lebih sederhana.
Kelebihannya:
- mudah melihat pola umum.
Kekurangannya:
- detail distribusi dapat hilang.
Bin Lebih Banyak
Misalnya:
bins=50
Distribusi akan terlihat lebih detail.
Kelebihannya:
- pola lokal lebih terlihat.
Kekurangannya:
- grafik dapat terlihat lebih berisik;
- pola umum dapat menjadi lebih sulit dilihat.
Karena itu, jumlah bin sebaiknya dipilih berdasarkan tujuan analisis dan karakteristik data.
Membandingkan Histogram dengan Jumlah Bin Berbeda
Kita dapat mencoba beberapa konfigurasi.
Histogram dengan 10 bin:
car_sales["Odometer (KM)"].plot.hist(
bins=10
)
plt.show()

Histogram dengan 20 bin:
car_sales["Odometer (KM)"].plot.hist(
bins=20
)
plt.show()

Histogram dengan 50 bin:
car_sales["Odometer (KM)"].plot.hist(
bins=50
)
plt.show()

Tujuannya bukan mencari jumlah bin yang selalu "paling benar", tetapi memahami bagaimana pilihan bin memengaruhi interpretasi visual.
Mengapa Histogram Berguna dalam Data Science?
Histogram dapat digunakan untuk melakukan pemeriksaan awal terhadap distribusi data numerik.
Misalnya sebelum membuat model Machine Learning, kita dapat melihat:
Apakah data terdistribusi secara seimbang?
↓
Apakah terdapat nilai ekstrem?
↓
Apakah data sangat skewed?
↓
Apakah transformasi diperlukan?
Histogram tidak otomatis memberikan jawaban terhadap semua pertanyaan tersebut, tetapi membantu kita melakukan eksplorasi awal.
Contoh Histogram untuk Price
Setelah kolom Price dibersihkan menjadi numerik, kita dapat membuat histogram:
car_sales["Price"].plot.hist(
bins=20
)
plt.show()

Kita dapat melihat bagaimana harga kendaraan tersebar dalam dataset.
Menggunakan figsize
Ukuran grafik dapat diatur menggunakan parameter figsize.
Contoh:
ax = car_sales["Odometer (KM)"].plot.hist(
bins=20,
figsize=(10, 6)
)
plt.show()
Ukuran:
figsize=(10, 6)
menggunakan satuan inch:
lebar = 10 inch
tinggi = 6 inch
Menambahkan Judul Histogram
Kita dapat melakukan customization menggunakan Matplotlib:
ax = car_sales["Odometer (KM)"].plot.hist(
bins=20,
figsize=(10, 6)
)
ax.set_title("Distribusi Odometer Kendaraan")
ax.set_xlabel("Odometer (KM)")
ax.set_ylabel("Frekuensi")
plt.show()
Pandas digunakan untuk membuat plot, sedangkan Matplotlib digunakan untuk melakukan pengaturan lebih lanjut.
Contoh Lengkap Bar Graph
import pandas as pd
import matplotlib.pyplot as plt
# Membaca dataset
car_sales = pd.read_csv("car-sales.csv")
# Membuat bar graph
ax = car_sales.plot(
x="Make",
y="Odometer (KM)",
kind="bar",
figsize=(10, 6)
)
# Memberikan judul
ax.set_title("Odometer Berdasarkan Merek Kendaraan")
# Menampilkan grafik
plt.show()

Contoh Lengkap Histogram
import pandas as pd
import matplotlib.pyplot as plt
# Membaca dataset
car_sales = pd.read_csv("car-sales.csv")
# Membuat histogram
ax = car_sales["Odometer (KM)"].plot.hist(
bins=20,
figsize=(10, 6)
)
# Memberikan judul dan label
ax.set_title("Distribusi Odometer Kendaraan")
ax.set_xlabel("Odometer (KM)")
ax.set_ylabel("Frekuensi")
# Menampilkan grafik
plt.show()

Contoh dengan Data Acak
Kita juga dapat membuat histogram dari data acak menggunakan NumPy.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
data = pd.Series(
np.random.randn(1000)
)
data.plot.hist(
bins=20,
figsize=(10, 6)
)
plt.show()
Data tersebut memiliki 1000 observasi yang berasal dari distribusi normal standar.
Membandingkan Bar Graph dan Histogram
| Karakteristik | Bar Graph | Histogram |
|---|---|---|
| Tujuan | Membandingkan kategori | Melihat distribusi |
| Data | Kategori atau nilai per observasi/agregasi | Numerik kontinu/discretized |
| Sumbu X | Kategori | Interval nilai |
| Batang | Terpisah berdasarkan kategori | Mewakili interval yang berdekatan |
bins | Tidak digunakan sebagai konsep utama | Digunakan |
| Contoh | Harga per merek | Distribusi harga |
| Analisis | Perbandingan | Distribusi frekuensi |
Perbedaan paling penting:
Bar Graph
Kategori → Nilai
Histogram
Interval Nilai → Frekuensi
Kesalahan yang Sering Terjadi
Menganggap Bar Graph dan Histogram Sama
Keduanya menggunakan batang, tetapi tujuan analisisnya berbeda.
Bar graph:
Kategori → Nilai
Histogram:
Interval Numerik → Frekuensi
Jangan memilih grafik hanya berdasarkan bentuk visualnya.
Menggunakan Histogram untuk Data Kategori
Histogram dirancang untuk distribusi data numerik.
Jika kita ingin membandingkan:
Toyota
Honda
BMW
Ford
bar graph lebih sesuai karena merek merupakan kategori.
Menggunakan Terlalu Banyak Bin
Menggunakan jumlah bin yang sangat besar tidak selalu membuat histogram lebih baik.
Contoh:
bins=100
dapat menghasilkan grafik yang sangat terfragmentasi, terutama jika dataset kecil.
Menggunakan Terlalu Sedikit Bin
Sebaliknya:
bins=3
mungkin terlalu sederhana sehingga detail distribusi hilang.
Workflow EDA dengan Bar Graph dan Histogram
Dalam Exploratory Data Analysis, kita dapat menggunakan kedua grafik untuk tujuan yang berbeda.
Contohnya:
Dataset
↓
DataFrame
↓
Data Cleaning
↓
┌───────────────┐
│ │
▼ ▼
Bar Graph Histogram
│ │
▼ ▼
Compare Distribution
Categories Numerical Data
│ │
└───────┬───────┘
▼
Data Understanding
Bar graph membantu menjawab pertanyaan perbandingan.
Histogram membantu memahami distribusi data numerik.
Method Penting
df.plot.bar()
Membuat bar graph dari DataFrame.
df.plot.bar()
df.plot(kind="bar")
Alternatif untuk membuat bar graph.
df.plot(
kind="bar"
)
df.plot.barh()
Membuat horizontal bar graph.
df.plot.barh()
Series.plot.hist()
Membuat histogram dari Series.
df["Price"].plot.hist()
kind="hist"
Alternatif untuk membuat histogram.
df["Price"].plot(
kind="hist"
)
bins
Menentukan jumlah kelompok interval histogram.
df["Price"].plot.hist(
bins=20
)
Ringkasan
Pada materi ini kita mempelajari dua jenis visualisasi penting dari Pandas DataFrame:
Bar Graph
Digunakan untuk membandingkan kategori atau nilai antar observasi.
Sintaks:
df.plot.bar()
atau:
df.plot(
kind="bar"
)
Histogram
Digunakan untuk melihat distribusi data numerik.
Sintaks:
df["column"].plot.hist()
atau:
df["column"].plot(
kind="hist"
)
Jumlah bin dapat diatur:
df["column"].plot.hist(
bins=20
)
Inti Materi
Hal utama yang perlu diingat:
BAR GRAPH
→ Membandingkan kategori
HISTOGRAM
→ Melihat distribusi data numerik
BINS
→ Mengatur pembagian interval pada histogram
Contoh:
# Bar Graph
car_sales.plot(
x="Make",
y="Odometer (KM)",
kind="bar"
)
# Histogram
car_sales["Odometer (KM)"].plot.hist(
bins=20
)
Dengan memahami perbedaan keduanya, kita dapat memilih visualisasi yang lebih sesuai dengan tujuan analisis data.