Anatomi Matplotlib Figure
Ketika membuat visualisasi menggunakan Matplotlib, kita tidak hanya membuat sebuah "grafik".
Di balik sebuah grafik terdapat beberapa objek dan komponen yang saling berhubungan.
Memahami struktur tersebut akan membantu kita ketika mulai melakukan:
- Kustomisasi grafik.
- Membuat beberapa grafik sekaligus.
- Mengatur ukuran Figure.
- Membuat subplot.
- Menambahkan title dan label.
- Menyimpan grafik.
- Mengatur layout visualisasi.
Struktur dasarnya dapat digambarkan sebagai:
Figure
│
└── Axes
│
├── X Axis
├── Y Axis
├── X Label
├── Y Label
├── Title
├── Plot
└── Legend / Grid / Tick
Pemahaman struktur ini merupakan dasar penting untuk menggunakan Object-Oriented API pada Matplotlib.

Komponen Utama Matplotlib Figure
Beberapa komponen yang perlu dipahami:
| Komponen | Pengertian |
|---|---|
| Figure | Container atau canvas utama |
| Axes | Area tempat data diplot |
| Axis | Sumbu koordinat X atau Y |
| Title | Judul visualisasi |
| X Label | Keterangan sumbu X |
| Y Label | Keterangan sumbu Y |
| Plot | Representasi visual dari data |
| Tick | Penanda nilai pada Axis |
| Legend | Keterangan untuk data yang diplot |
Figure
Figure adalah container atau canvas utama dari sebuah visualisasi Matplotlib.
Ketika kita membuat:
fig, ax = plt.subplots()
variabel:
fig
merupakan objek Figure.
Secara sederhana:
Figure
┌───────────────────────────────────────┐
│ │
│ Canvas │
│ │
│ ┌───────────────────────┐ │
│ │ │ │
│ │ Axes │ │
│ │ │ │
│ └───────────────────────┘ │
│ │
└───────────────────────────────────────┘
Sebuah Figure dapat memiliki satu atau beberapa Axes.
Contohnya:
Figure
│
├── Axes 1
├── Axes 2
├── Axes 3
└── Axes 4
Konsep ini sangat penting ketika membuat beberapa grafik dalam satu Figure.
Axes
Axes adalah area tempat data benar-benar diplot.
Ketika kita membuat:
fig, ax = plt.subplots()
variabel:
ax
merupakan objek Axes.
Di dalam Axes terdapat berbagai elemen visualisasi seperti:
- Data.
- X Axis.
- Y Axis.
- X Label.
- Y Label.
- Title.
- Tick.
- Grid.
- Legend.
Contoh:
Figure
┌───────────────────────────────────────┐
│ │
│ Title │
│ │
│ Y Axis │
│ │ ● │
│ │ ● │
│ │ ● │
│ │ │
│ └──────────────────────── X Axis │
│ │
└───────────────────────────────────────┘
Perhatikan bahwa Axes bukan hanya sumbu.
Axes adalah keseluruhan area plotting yang memiliki Axis sebagai bagian di dalamnya.
Axes vs Axis
Istilah Axes dan Axis sering tertukar.
Axes
Axes adalah area tempat data diplot.
fig, ax = plt.subplots()
Variabel:
ax
adalah objek Axes.
Axis
Axis adalah sumbu koordinat.
Pada grafik 2D biasanya terdapat:
X Axis
Y Axis
Secara konseptual:
Figure
↓
Axes
├── X Axis
└── Y Axis
Jadi:
Axes ≠ Axis
Axes adalah area plotting, sedangkan Axis adalah sumbu yang terdapat di dalamnya.
X Axis
X Axis merupakan sumbu horizontal.
Contohnya:
X Axis
─────────────────────────────→
1 2 3 4 5
X Axis biasanya digunakan untuk merepresentasikan:
- Waktu.
- Kategori.
- Nilai input.
- Variabel independen.
- Posisi.
Contohnya:
x = [1, 2, 3, 4, 5]
Y Axis
Y Axis merupakan sumbu vertikal.
Y Axis
↑
50 │
40 │
30 │
20 │
10 │
└────── ──────────────→
X Axis
Y Axis dapat digunakan untuk merepresentasikan:
- Nilai hasil.
- Jumlah.
- Harga.
- Suhu.
- Skor.
- Variabel dependen.
Contohnya:
y = [10, 20, 30, 40, 50]
X Label
X Label memberikan informasi mengenai apa yang direpresentasikan oleh sumbu X.
Contoh:
ax.set_xlabel("Bulan")
Jika grafik menampilkan penjualan bulanan, label:
Bulan
memberikan konteks kepada pembaca.
Y Label
Y Label memberikan informasi mengenai apa yang direpresentasikan oleh sumbu Y.
Contoh:
ax.set_ylabel("Penjualan")
Dengan demikian pembaca mengetahui bahwa nilai pada Y Axis merupakan data penjualan.
Title
Title merupakan judul utama dari sebuah visualisasi.
Contoh:
ax.set_title("Penjualan Bulanan")
Title membantu pembaca memahami konteks grafik tanpa harus membaca kode program.
Plot
Plot adalah representasi visual dari data.
Beberapa jenis plot yang umum:
Line Plot
Scatter Plot
Bar Plot
Histogram
Box Plot
Contoh line plot:
ax.plot(x, y)
Contoh scatter plot:
ax.scatter(x, y)
Contoh bar plot:
ax.bar(x, y)
Jenis plot yang digunakan bergantung pada karakteristik data dan tujuan analisis.
Tick
Tick merupakan penanda nilai pada Axis.
Contohnya:
Y Axis
50 ┤
40 ┤
30 ┤
20 ┤
10 ┤
└────────────────
1 2 3 4 5
Angka:
10
20
30
40
50
merupakan contoh tick pada Y Axis.
Sedangkan:
1
2
3
4
5
merupakan contoh tick pada X Axis.
Tick membantu pembaca membaca nilai pada grafik.
Legend
Jika sebuah grafik memiliki beberapa data, kita dapat menggunakan legend untuk menjelaskan masing-masing data.
Contoh:
ax.plot(x, y1, label="Produk A")
ax.plot(x, y2, label="Produk B")
ax.legend()
Legend dapat membantu pembaca mengetahui garis atau marker mana yang mewakili masing-masing dataset.
Grid
Grid merupakan garis bantu yang dapat digunakan untuk mempermudah pembacaan nilai.
Contoh:
ax.grid()
Grid dapat membantu ketika pembaca perlu memperkirakan nilai data berdasarkan posisi pada grafik.
Namun, penggunaannya tetap perlu disesuaikan dengan kebutuhan visualisasi.
Object-Oriented Workflow
Sekarang kita akan melihat workflow standar menggunakan Object-Oriented API.
Secara umum:
1. Import library
↓
2. Siapkan data
↓
3. Buat Figure dan Axes
↓
4. Plot data
↓
5. Kustomisasi
↓
6. Simpan / tampilkan
Step 1 - Import Library
Import Matplotlib:
import matplotlib.pyplot as plt
Jika menggunakan NumPy:
import numpy as np
import matplotlib.pyplot as plt
Step 2 - Menyiapkan Data
Contoh sederhana:
x = [1, 2, 3, 4]
y = [11, 22, 33, 44]
Data tersebut akan digunakan sebagai:
X → [1, 2, 3, 4]
Y → [11, 22, 33, 44]
Sehingga titik yang diplot adalah:
(1, 11)
(2, 22)
(3, 33)
(4, 44)
Step 3 - Membuat Figure dan Axes
Gunakan:
fig, ax = plt.subplots()
Sekarang kita memiliki:
fig → Figure
ax → Axes
Kita dapat memeriksa tipe objek tersebut:
print(type(fig))
print(type(ax))
Secara umum:
fig → matplotlib.figure.Figure
ax → matplotlib.axes.Axes
Step 4 - Menentukan Ukuran Figure
Ukuran Figure dapat diatur menggunakan parameter figsize.
Contoh:
fig, ax = plt.subplots(figsize=(10, 5))
Formatnya:
figsize=(width, height)
Satuannya adalah inci.
Jadi:
figsize=(10, 5)
berarti:
Width = 10 inch
Height = 5 inch
Perlu diperhatikan bahwa figsize menentukan ukuran Figure, bukan jumlah pixel secara langsung.
Step 5 - Plot Data
Setelah Axes dibuat, kita dapat memasukkan data:
ax.plot(x, y)
Sekarang data berada di dalam Axes.
Figure
└── Axes
└── Line Plot
Step 6 - Menambahkan Title dan Label
Kita dapat menambahkan title dan label.
ax.set(
title="Contoh Plot Sederhana",
xlabel="Sumbu X",
ylabel="Sumbu Y"
)
Method set() memungkinkan kita mengatur beberapa property Axes sekaligus.
Alternatifnya, kita dapat menuliskannya satu per satu:
ax.set_title("Contoh Plot Sederhana")
ax.set_xlabel("Sumbu X")
ax.set_ylabel("Sumbu Y")
Kedua pendekatan tersebut dapat digunakan.
Mengapa Menggunakan ax.set()?
Tanpa set():
ax.set_title("Contoh Plot")
ax.set_xlabel("Sumbu X")
ax.set_ylabel("Sumbu Y")
Dengan set():
ax.set(
title="Contoh Plot",
xlabel="Sumbu X",
ylabel="Sumbu Y"
)
Untuk beberapa property sederhana, set() membuat kode lebih ringkas.
Namun, ketika konfigurasi semakin kompleks, memanggil method secara terpisah sering kali membuat kode lebih mudah dibaca.
Step 7 - Menampilkan Grafik
Setelah selesai membuat grafik, kita dapat menampilkannya:
plt.show()
Contoh lengkap:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [11, 22, 33, 44]
fig, ax = plt.subplots(figsize=(10, 5))
ax.plot(x, y)
ax.set(
title="Contoh Plot Sederhana",
xlabel="Sumbu X",
ylabel="Sumbu Y"
)
plt.show()

Step 8 - Menyimpan Grafik
Figure dapat disimpan menggunakan:
fig.savefig("sample-plot.png")
Contoh lengkap:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [11, 22, 33, 44]
fig, ax = plt.subplots(figsize=(10, 5))
ax.plot(x, y)
ax.set(
title="Contoh Plot Sederhana",
xlabel="Sumbu X",
ylabel="Sumbu Y"
)
fig.savefig("sample-plot.png")
plt.show()
Perhatikan bahwa kita menggunakan:
fig.savefig()
karena kita ingin menyimpan Figure yang telah dibuat.
Workflow Lengkap
Seluruh proses dapat diringkas menjadi:
# 1. Import
import matplotlib.pyplot as plt
# 2. Data
x = [1, 2, 3, 4]
y = [11, 22, 33, 44]
# 3. Figure dan Axes
fig, ax = plt.subplots(figsize=(10, 5))
# 4. Plot
ax.plot(x, y)
# 5. Customization
ax.set(
title="Contoh Plot Sederhana",
xlabel="Sumbu X",
ylabel="Sumbu Y"
)
# 6. Save
fig.savefig("sample-plot.png")
# 7. Show
plt.show()
Workflow tersebut menjadi pola dasar yang akan digunakan pada banyak materi Matplotlib berikutnya.
Visualisasi Struktur Figure
Struktur kode:
fig, ax = plt.subplots()
│
├──────────────┐
↓ ↓
Figure Axes
│ │
│ ├── Plot
│ ├── X Axis
│ ├── Y Axis
│ ├── Title
│ ├── X Label
│ ├── Y Label
│ ├── Tick
│ └── Legend
│
└── Save / Layout / Size
Dengan memahami struktur ini, kode Matplotlib akan lebih mudah dipahami.
Menggunakan NumPy dengan Matplotlib
Matplotlib dapat bekerja langsung dengan NumPy Array.
Contoh:
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 10)
y = x ** 2
fig, ax = plt.subplots(figsize=(10, 5))
ax.plot(x, y)
ax.set(
title="Fungsi Kuadrat",
xlabel="X",
ylabel="Y"
)
plt.show()
Workflow:
NumPy
↓
Membuat data
↓
Matplotlib
↓
Figure + Axes
↓
Plot
↓
Visualization
Ini merupakan salah satu kombinasi yang sangat umum dalam Data Science.
Satu Figure dengan Satu Axes
Kasus paling sederhana adalah satu Figure dengan satu Axes.
fig, ax = plt.subplots()
Strukturnya:
Figure
└── Axes
Contoh:
fig, ax = plt.subplots()
ax.plot(x, y)
plt.show()
Satu Figure dengan Banyak Axes
Matplotlib juga memungkinkan kita membuat beberapa Axes dalam satu Figure.
Contoh:
fig, ax = plt.subplots(2, 2)
Strukturnya:
Figure
├── Axes 1
├── Axes 2
├── Axes 3
└── Axes 4
Secara visual:
┌───────────────┬───────────────┐
│ Axes 1 │ Axes 2 │
│ │ │
├───────────────┼───────────────┤
│ Axes 3 │ Axes 4 │
│ │ │
└───────────────┴───────────────┘
Konsep ini akan dipelajari lebih lanjut ketika membahas subplots.
Mengapa Memahami Anatomy Figure Penting?
Tanpa memahami struktur Figure dan Axes, kita mungkin hanya menghafalkan kode:
plt.plot()
Namun ketika kebutuhan visualisasi bertambah, kita akan menemukan kode seperti:
fig, ax = plt.subplots()
atau:
fig, ax = plt.subplots(2, 2)
Kemudian:
ax[0, 0].plot()
ax[0, 1].scatter()
ax[1, 0].bar()
ax[1, 1].hist()
Jika kita sudah memahami hubungan:
Figure
↓
Axes
↓
Plot
maka struktur kode tersebut menjadi lebih mudah dipahami.
Kesalahan Konsep yang Sering Terjadi
Menganggap Figure sebagai Grafik
Figure bukan sekadar grafik.
Figure merupakan container utama yang dapat menampung satu atau beberapa Axes.
Figure
├── Axes 1
├── Axes 2
└── Axes 3
Menganggap Axes Sama dengan Axis
Ini juga sering terjadi.
Axes
├── X Axis
└── Y Axis
Jadi Axes merupakan area plotting, sedangkan Axis merupakan sumbu.
Menganggap figsize Menggunakan Pixel
Contoh:
figsize=(10, 5)
bukan berarti:
1000 × 500 pixel
figsize menggunakan satuan inch.
Resolusi output dapat dipengaruhi oleh parameter dpi.
Contohnya:
fig, ax = plt.subplots(
figsize=(10, 5),
dpi=100
)
Secara konseptual ukuran raster dapat berkaitan dengan:
width = 10 × 100 = 1000 pixel
height = 5 × 100 = 500 pixel
Ringkasan
Anatomy sebuah visualisasi Matplotlib dapat dipahami melalui struktur:
Figure
↓
Axes
↓
Axis + Plot + Labels + Title + Tick + Legend
Figure
Merupakan container atau canvas utama.
fig
Axes
Merupakan area tempat data diplot.
ax
Axis
Merupakan sumbu koordinat:
X Axis
Y Axis
Title
Memberikan judul visualisasi:
ax.set_title("Judul")
X Label
Memberikan keterangan sumbu X:
ax.set_xlabel("X")
Y Label
Memberikan keterangan sumbu Y:
ax.set_ylabel("Y")
figsize
Mengatur ukuran Figure dalam inci:
fig, ax = plt.subplots(figsize=(10, 5))
ax.set()
Memungkinkan beberapa property Axes diatur sekaligus:
ax.set(
title="Judul",
xlabel="X",
ylabel="Y"
)
fig.savefig()
Menyimpan Figure:
fig.savefig("sample-plot.png")
Cheat Sheet
import matplotlib.pyplot as plt
# Data
x = [1, 2, 3, 4]
y = [11, 22, 33, 44]
# Figure + Axes
fig, ax = plt.subplots(figsize=(10, 5))
# Plot
ax.plot(x, y)
# Customization
ax.set(
title="Contoh Plot",
xlabel="Sumbu X",
ylabel="Sumbu Y"
)
# Save
fig.savefig("sample-plot.png")
# Show
plt.show()
Struktur utamanya:
fig
↓
Figure
ax
↓
Axes
↓
plot()
set()
grid()
legend()
Checklist Pembelajaran
Setelah menyelesaikan materi ini, Anda seharusnya dapat:
- Menjelaskan apa itu Figure.
- Menjelaskan apa itu Axes.
- Membedakan Axes dan Axis.
- Menjelaskan fungsi X Axis.
- Menjelaskan fungsi Y Axis.
- Menjelaskan fungsi X Label.
- Menjelaskan fungsi Y Label.
- Menjelaskan fungsi Title.
- Memahami Tick dan Legend.
- Membuat Figure menggunakan
plt.subplots(). - Membuat Axes menggunakan
plt.subplots(). - Mengatur ukuran Figure menggunakan
figsize. - Melakukan plotting menggunakan
ax.plot(). - Menggunakan
ax.set(). - Menyimpan Figure menggunakan
fig.savefig(). - Memahami hubungan Figure → Axes → Axis → Plot.
Latihan
Latihan 1 - Anatomy Figure
Buat sebuah Figure dan Axes:
fig, ax = plt.subplots()
Kemudian periksa:
print(type(fig))
print(type(ax))
Jelaskan perbedaan kedua objek tersebut.
Latihan 2 - Membuat Plot
Gunakan:
x = [1, 2, 3, 4, 5]
y = [10, 20, 15, 30, 25]
Buat sebuah line plot menggunakan:
ax.plot(x, y)
Tambahkan:
- Title.
- X Label.
- Y Label.
- Grid.
Latihan 3 - Mengatur Ukuran Figure
Buat Figure dengan ukuran:
figsize=(12, 6)
Kemudian bandingkan hasilnya dengan:
figsize=(6, 3)
Perhatikan perbedaan ukuran visualisasi.
Latihan 4 - Menyimpan Figure
Buat sebuah grafik kemudian simpan sebagai:
fig.savefig("latihan-matplotlib.png")
Pastikan file berhasil dibuat.
Latihan 5 - Eksplorasi
Coba buat grafik menggunakan:
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title("Data Saya")
ax.set_xlabel("X")
ax.set_ylabel("Y")
ax.grid()
plt.show()
Kemudian identifikasi bagian berikut pada hasil visualisasi:
Figure
Axes
X Axis
Y Axis
Title
X Label
Y Label
Tick
Plot
Grid