Matplotlib subplot: Banyak Grafik dalam Satu Figure
Blog/Tips & Trik/Matplotlib subplot: Banyak Grafik dalam Satu Figure

Matplotlib subplot: Banyak Grafik dalam Satu Figure

BimaBima
·31 Oktober 2026·10 menit baca

Penulis

Bima

Bima

Founder & Data Professional

Bagikan

TL;DR

Matplotlib subplot naruh beberapa grafik dalam satu figure lewat plt.subplots(baris, kolom). Fungsi ini balikin objek figure dan array axes, di mana tiap axes itu satu grafik yang kamu isi terpisah. Kamu bisa atur ukuran, judul, dan jarak antar grafik biar rapi dalam satu gambar utuh.

Matplotlib subplot naruh beberapa grafik dalam satu figure sekaligus. Jadi kamu bisa banding penjualan per bulan, per kota, dan per kategori dalam satu gambar, bukan tiga gambar terpisah.

Ini penting buat laporan dan analisis. Pembaca lihat semua grafik terkait dalam satu tampilan, tanpa scroll bolak-balik.

Di tutorial ini kamu bakal belajar bikin grid subplot pakai plt.subplots, akses tiap grafik, atur ukuran, dan rapikan jarak antar grafik. Semua pakai contoh data toko Indonesia.

Apa itu subplot di matplotlib?

Subplot adalah cara matplotlib nyusun beberapa grafik dalam satu figure yang sama. Figure itu kanvas besarnya, dan tiap subplot adalah satu area grafik di dalamnya. Kamu atur berapa baris dan kolom grid-nya, lalu isi tiap kotak dengan grafik yang beda.

Fungsi utamanya plt.subplots(). Dia balikin dua hal: objek figure buat ngatur kanvas, dan array axes buat ngatur tiap grafik.

Kalau kamu baru mulai visualisasi di Python, cek dulu Pandas plot buat grafik cepat dari DataFrame. Subplot berguna waktu kamu butuh beberapa grafik sekaligus dengan kontrol penuh.

Gimana cara bikin subplot di matplotlib?

Cara paling umum pakai plt.subplots dengan dua angka: jumlah baris dan jumlah kolom. Fungsi ini balikin figure dan axes. Kamu lalu panggil method plot di tiap axes buat ngisi grafiknya. Berikut contoh grid 1 baris 2 kolom.

import matplotlib.pyplot as plt

fig, ax = plt.subplots(1, 2, figsize=(10, 4))

ax[0].plot([1, 2, 3], [10, 20, 15])
ax[0].set_title('Penjualan Harian')

ax[1].bar(['A', 'B', 'C'], [30, 45, 25])
ax[1].set_title('Per Kategori')

plt.tight_layout()
plt.show()

Di sini ax itu array berisi 2 grafik. ax[0] grafik kiri, ax[1] grafik kanan. Tiap grafik diisi terpisah, jadi kamu bebas kombinasiin line chart dan bar chart dalam satu figure.

figsize=(10, 4) ngatur ukuran kanvas dalam inci. plt.tight_layout() ngerapiin jarak biar judul dan label nggak numpuk.

Cara akses subplot dalam grid baris dan kolom

Kalau grid-nya lebih dari satu baris dan satu kolom, axes jadi array 2 dimensi. Kamu akses tiap grafik pakai dua indeks: baris dan kolom. Contohnya ax[0, 1] berarti baris pertama kolom kedua.

fig, ax = plt.subplots(2, 2, figsize=(10, 8))

ax[0, 0].plot(x, penjualan)
ax[0, 1].bar(kota, total)
ax[1, 0].scatter(harga, jumlah)
ax[1, 1].hist(nilai)

plt.tight_layout()
plt.show()

Grid 2x2 ini punya 4 grafik. Aturannya gampang: indeks pertama baris (atas ke bawah), indeks kedua kolom (kiri ke kanan). Mulai dari 0, jadi ax[1, 1] itu grafik pojok kanan bawah.

Trik: pakai flatten buat loop

Kalau kamu mau isi banyak subplot dengan pola yang sama, ubah array axes jadi 1 dimensi pakai .flatten(), lalu loop.

fig, ax = plt.subplots(2, 2, figsize=(10, 8))
axes = ax.flatten()

for i, kategori in enumerate(daftar_kategori):
    axes[i].plot(data[kategori])
    axes[i].set_title(kategori)

plt.tight_layout()

Contoh kasus: dashboard mini toko_berkah

Bayangin kamu perlu laporan visual toko_berkah dalam satu gambar buat rapat. Ada empat hal yang mau ditunjukin: tren penjualan 12 bulan, penjualan per kota, sebaran harga, dan proporsi kategori.

Aku pakai grid 2x2. Line chart buat tren, bar chart buat kota, scatter buat harga vs jumlah, dan pie buat kategori. Empat grafik, satu figure, satu file gambar.

fig, ax = plt.subplots(2, 2, figsize=(12, 9))

ax[0, 0].plot(bulan, penjualan, color='#0891b2')
ax[0, 0].set_title('Tren Penjualan 2026')

ax[0, 1].bar(kota, total_kota, color='#f97316')
ax[0, 1].set_title('Penjualan per Kota')

ax[1, 0].scatter(harga, jumlah, color='#fbbf24')
ax[1, 0].set_title('Harga vs Jumlah')

ax[1, 1].pie(porsi, labels=kategori)
ax[1, 1].set_title('Proporsi Kategori')

plt.tight_layout()
plt.savefig('dashboard_toko.png', dpi=150)

Hasilnya satu file PNG yang gampang ditempel ke slide. Buat laporan bulanan toko_berkah, ini motong waktu bikin visual dari yang tadinya export 4 grafik satu-satu jadi cukup jalanin satu script. Buat nyiapin datanya, pakai Pandas groupby dulu buat agregasi per kota dan kategori.

Kesalahan umum saat pakai subplot

Kesalahan paling sering: bingung akses axes karena bentuk arraynya beda tergantung grid. Berikut jebakan lain yang bikin subplot error atau berantakan.

  • Salah bentuk array axes. Grid 1 baris balikin array 1 dimensi (ax[0]), grid banyak baris balikin 2 dimensi (ax[0, 0]). Kalau salah indeks, muncul error. Cek dulu bentuk grid-nya.
  • Lupa tight_layout. Tanpa plt.tight_layout(), judul dan label sering numpuk. Selalu panggil sebelum show atau savefig.
  • Cuma 1 subplot tapi diindeks. Kalau plt.subplots() tanpa angka, dia balikin satu axes tunggal, bukan array. Jangan pakai ax[0] di kasus ini.
  • figsize kekecilan. Banyak grafik di kanvas kecil bikin sempit. Naikin figsize sesuai jumlah subplot.

FAQ

Apa beda plt.subplot dan plt.subplots di matplotlib?

plt.subplots (pakai s) bikin figure dan semua axes sekaligus dalam satu panggilan, lalu balikin keduanya. Ini cara yang direkomendasiin karena lebih rapi. plt.subplot (tanpa s) bikin satu axes per panggilan dan kamu harus panggil berulang buat tiap grafik. Buat pemula, pakai plt.subplots aja karena lebih gampang diatur dan lebih sedikit baris kode.

Gimana cara atur jarak antar subplot?

Cara paling gampang panggil plt.tight_layout() sebelum menampilkan grafik. Fungsi ini otomatis ngatur jarak biar judul dan label nggak numpuk. Kalau butuh kontrol lebih detail, pakai fig.subplots_adjust() dengan parameter hspace buat jarak vertikal dan wspace buat jarak horizontal. Nilai lebih besar berarti jarak lebih lebar antar grafik.

Kenapa muncul error saat akses subplot pakai indeks?

Biasanya karena bentuk array axes nggak sesuai cara kamu ngindeks. Grid dengan satu baris atau satu kolom balikin array 1 dimensi, jadi aksesnya ax[0]. Grid dengan banyak baris dan kolom balikin array 2 dimensi, jadi aksesnya ax[0, 0]. Kalau plt.subplots dipanggil tanpa angka, dia balikin satu axes tunggal yang nggak bisa diindeks sama sekali.

Gimana cara bikin subplot berbagi sumbu yang sama?

Pakai parameter sharex=True atau sharey=True di plt.subplots. Contohnya plt.subplots(2, 1, sharex=True) bikin dua grafik yang numpuk vertikal dengan sumbu X yang sama. Ini berguna waktu grafik-grafiknya pakai skala yang sama, misalnya membandingkan beberapa produk dalam rentang bulan yang identik. Sumbu jadi lebih rapi dan gampang dibandingin.

Gimana cara simpan figure subplot jadi file gambar?

Pakai plt.savefig('nama.png') atau fig.savefig('nama.png') setelah semua subplot selesai diisi. Tambahin parameter dpi buat atur ketajaman, misalnya dpi=150 buat kualitas bagus. Panggil savefig sebelum plt.show(), karena di sebagian setup show bisa ngosongin figure. Pastikan juga tight_layout dipanggil dulu biar file yang tersimpan nggak kepotong labelnya.

Rangkuman

Subplot di matplotlib bikin kamu bisa naruh banyak grafik dalam satu figure lewat plt.subplots(baris, kolom). Akses tiap grafik pakai indeks: 1 dimensi buat grid satu baris, 2 dimensi buat grid banyak baris.

Ingat dua hal: sesuaikan cara indeks dengan bentuk grid, dan selalu panggil tight_layout biar rapi. Buat banyak subplot berpola sama, flatten dan loop lebih hemat kode.

Mau lanjut latihan Python buat data? Coba bikin dashboard mini kamu sendiri hari ini. Masih ragu perlu belajar coding atau cukup tool AI? Baca Python vs tools AI buat analis. Dokumentasi resmi subplot ada di situs matplotlib.

Coba Langsung

Mau praktek langsung? Mulai latihan SQL gratis

Latihan interaktif, langsung di browser.

Buka NgulikSQL →
Bagikan:
Bima
Ditulis oleh

Bima

Founder & Data Professional

Founder Ngulik Data. Passionate about making data analysis accessible for everyone.

Artikel terkait

Uji Chi-Square: Konsep dan Contoh Praktis (2026)
Tips & Trik
30 Desember 2026•9 menit baca

Uji Chi-Square: Konsep dan Contoh Praktis (2026)

Mau tau apakah metode bayar berhubungan sama tipe pelanggan? Uji chi-square jawabannya. Ini konsep, rumus, cara hitung di Python, plus contoh data toko nyata.

BimaBima
Korelasi Spearman: Kapan Dipakai vs Pearson
Tips & Trik
27 Desember 2026•8 menit baca

Korelasi Spearman: Kapan Dipakai vs Pearson

Korelasi Spearman kerja di peringkat, bukan nilai asli. Ini bedanya dengan Pearson, kapan pakai yang mana, dan cara hitungnya di Excel dan Python.

BimaBima
Korelasi Pearson: Cara Menghitung dan Membaca
Tips & Trik
24 Desember 2026•8 menit baca

Korelasi Pearson: Cara Menghitung dan Membaca

Korelasi Pearson ngukur seberapa kuat dua angka bergerak bareng. Ini cara hitung dan baca nilainya dengan contoh dataset toko Indonesia.

BimaBima
Kembali ke Blog
Ngulik Data logoNgulik Data

Platform edukasi data lengkap untuk professionals Indonesia. Belajar SQL, Data Analysis, dan lebih banyak lagi dengan praktek langsung dan feedback real-time.

© 2026 Ngulik Data. Semua hak dilindungi.

TAUTAN
BantuanHargaDatasetBlogAfiliasi
LEGAL
Syarat & KetentuanKebijakan Privasi
Ngulik Data
DatasetLeaderboardBlogStore