Data mentah berupa angka dan tabel sering kali sulit dipahami hanya dengan dilihat sekilas. Di sinilah Matplotlib berperan — library plotting paling populer di Python yang membantumu mengubah data menjadi grafik yang informatif dan menarik. Artikel ini akan memandumu dari nol: mulai dari instalasi, membuat line chart pertama, hingga kustomisasi dan integrasi dengan Pandas. Siap? Mari kita mulai!
Apa Itu Matplotlib dan Mengapa Penting?
Matplotlib adalah library open-source untuk membuat visualisasi data statis, animasi, dan interaktif di Python. Dibuat oleh John D. Hunter pada 2003, Matplotlib kini menjadi standar de facto untuk plotting di ekosistem data science, serta menjadi fondasi bagi library lain seperti Seaborn dan plotting bawaan Pandas. Baik kamu seorang data scientist, backend developer yang ingin membuat grafik laporan, maupun mahasiswa yang mengerjakan tugas analisis, kemampuan membuat grafik yang baik akan sangat membantumu menyampaikan insight.
Instalasi Matplotlib
Sebelum mulai, pastikan Python sudah terpasang di komputermu. Jika belum, baca dulu panduan cara install Python dan menulis program pertamamu. Setelah itu, instal Matplotlib dengan pip:
pip install matplotlib
Jika kamu menggunakan uv sebagai package manager, cukup jalankan uv add matplotlib — lebih cepat dan otomatis mengelola virtual environment. Untuk memverifikasi instalasi berhasil, jalankan perintah berikut di terminal. Jika tidak muncul error, berarti Matplotlib siap digunakan:
python -c "import matplotlib; print(matplotlib.__version__)"
Sebaiknya gunakan virtual environment untuk setiap proyek agar dependensi tetap terisolasi. Dengan uv, cukup jalankan uv init lalu uv add matplotlib — semuanya dikelola otomatis. Pelajari lebih lanjut di tutorial lengkap uv.
Grafik Pertamamu: Line Chart
Mari mulai dengan grafik paling sederhana: line chart. Grafik ini cocok untuk menampilkan tren data seiring waktu, misalnya pertumbuhan pengguna website. Simpan kode berikut sebagai grafik.py, lalu jalankan:
import matplotlib.pyplot as plt
bulan = ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun"]
pengguna = [1200, 1450, 1600, 2100, 2800, 3500]
plt.plot(bulan, pengguna)
plt.show()
Fungsi plt.plot() menggambar garis berdasarkan data yang diberikan, sementara plt.show() menampilkan jendela grafik. Modul pyplot (diimpor sebagai plt) menyediakan antarmuka sederhana layaknya MATLAB untuk membuat grafik dengan cepat.
Kustomisasi Grafik: Judul, Label, Legenda, dan Gaya
Grafik tanpa judul dan label sumbu sulit dipahami pembaca. Berikut cara menambahkan elemen-elemen penting sekaligus mempercantik tampilannya:
import matplotlib.pyplot as plt
bulan = ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun"]
pengguna = [1200, 1450, 1600, 2100, 2800, 3500]
target = [1000, 1300, 1700, 2000, 2600, 3200]
plt.plot(bulan, pengguna, marker="o", color="#e94560", linestyle="--", linewidth=2, label="Aktual")
plt.plot(bulan, target, marker="s", color="#4a90d9", linestyle="-", linewidth=2, label="Target")
plt.title("Pertumbuhan Pengguna Website")
plt.xlabel("Bulan")
plt.ylabel("Jumlah Pengguna")
plt.legend()
plt.grid(True)
plt.show()
Beberapa parameter penting: marker menentukan bentuk titik data, color mengatur warna (bisa nama warna atau kode hex), linestyle menentukan gaya garis, dan label memberi nama untuk ditampilkan di legenda. Jangan lupa memanggil plt.legend() agar label muncul.
Matplotlib punya banyak style bawaan. Jalankan plt.style.available untuk melihat daftarnya, lalu pilih dengan plt.style.use("seaborn-v0_8") atau plt.style.use("ggplot") agar grafik tampil lebih modern tanpa kustomisasi manual.
Jenis Grafik yang Umum Dipakai
Selain line chart, ada tiga jenis grafik lain yang paling sering dipakai: bar chart untuk perbandingan antar kategori, scatter plot untuk melihat hubungan antar dua variabel, dan histogram untuk distribusi data. Berikut contohnya satu per satu.
Bar Chart: Perbandingan Antar Kategori
import matplotlib.pyplot as plt
bahasa = ["Python", "JavaScript", "TypeScript", "Go", "Rust"]
popularitas = [85, 78, 70, 62, 55]
plt.bar(bahasa, popularitas, color="#4a90d9")
plt.title("Popularitas Bahasa Pemrograman")
plt.xlabel("Bahasa")
plt.ylabel("Skor Popularitas")
plt.show()
Scatter Plot: Hubungan Antar Dua Variabel
Scatter plot sangat berguna untuk melihat korelasi, misalnya hubungan antara jam belajar dan nilai ujian.
import matplotlib.pyplot as plt
import numpy as np
np.random.seed(42)
jam_belajar = np.random.uniform(0, 10, 100)
nilai_ujian = jam_belajar * 8 + np.random.normal(0, 8, 100)
plt.scatter(jam_belajar, nilai_ujian, alpha=0.7, color="#e94560")
plt.title("Hubungan Jam Belajar dan Nilai Ujian")
plt.xlabel("Jam Belajar per Minggu")
plt.ylabel("Nilai Ujian")
plt.show()
Histogram: Melihat Distribusi Data
import matplotlib.pyplot as plt
import numpy as np
np.random.seed(42)
data = np.random.normal(70, 10, 1000)
plt.hist(data, bins=30, color="#6c5ce7", edgecolor="white")
plt.title("Distribusi Nilai Ujian")
plt.xlabel("Nilai")
plt.ylabel("Frekuensi")
plt.show()
Subplot: Beberapa Grafik dalam Satu Figure
Kadang kamu ingin membandingkan beberapa grafik sekaligus. Gunakan plt.subplots() untuk membuat grid grafik dalam satu figure:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2 * np.pi, 100)
fig, axes = plt.subplots(1, 2, figsize=(10, 4))
axes[0].plot(x, np.sin(x), color="tab:blue")
axes[0].set_title("sin(x)")
axes[1].plot(x, np.cos(x), color="tab:red")
axes[1].set_title("cos(x)")
plt.tight_layout()
plt.show()
Pendekatan ini menggunakan object-oriented API — kamu memegang objek fig dan axes secara eksplisit. Gaya ini lebih disarankan untuk proyek yang kompleks karena memberi kontrol penuh terhadap setiap grafik.
Menyimpan Grafik ke File
Setelah grafik jadi, kamu mungkin ingin menyimpannya untuk laporan, website, atau media sosial. Gunakan plt.savefig():
import matplotlib.pyplot as plt
bulan = ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun"]
pengguna = [1200, 1450, 1600, 2100, 2800, 3500]
plt.plot(bulan, pengguna, marker="o")
plt.title("Pertumbuhan Pengguna Website")
# Simpan dengan resolusi tinggi
plt.savefig("grafik.png", dpi=300, bbox_inches="tight")
Parameter dpi menentukan resolusi (300 cocok untuk cetak), sedangkan bbox_inches="tight" menghilangkan whitespace berlebih di sekitar grafik. Matplotlib mendukung banyak format seperti PNG, JPG, SVG, dan PDF.
Panggil plt.savefig() sebelum plt.show(). Setelah plt.show() dipanggil, figure akan dikosongkan sehingga file yang tersimpan bisa jadi kosong.
Visualisasi Data dengan Pandas
Jika datamu sudah berbentuk DataFrame Pandas, kamu bisa langsung membuat grafik dengan metode .plot() tanpa menulis banyak kode — sangat praktis untuk eksplorasi data. Kalau kamu belum familiar dengan Pandas, baca dulu panduan lengkap Pandas untuk analisis data.
import matplotlib.pyplot as plt
import pandas as pd
data = {
"bulan": ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun"],
"pengunjung": [3200, 4100, 3800, 5200, 6100, 7400],
"pendaftar": [210, 340, 300, 480, 610, 800],
}
df = pd.DataFrame(data)
df.plot(x="bulan", y=["pengunjung", "pendaftar"], marker="o")
plt.title("Trafik Website per Bulan")
plt.xlabel("Bulan")
plt.ylabel("Jumlah")
plt.grid(True)
plt.show()
Metode .plot() pada DataFrame otomatis memanggil Matplotlib di balik layar. Kamu juga bisa menentukan jenis grafik lewat parameter kind, misalnya kind="bar" atau kind="scatter".
Visualisasi juga berperan besar dalam machine learning — misalnya memplot kurva loss saat melatih model atau memvisualisasikan hasil klasifikasi. Jika tertarik mendalami, lanjutkan ke tutorial membuat model klasifikasi pertama dengan Scikit-learn.
Kesimpulan
Selamat! Kamu kini bisa membuat line chart, bar chart, scatter plot, histogram, mengombinasikannya dalam subplot, mengustomisasi tampilan, menyimpan grafik ke file, bahkan membuat visualisasi langsung dari DataFrame Pandas. Matplotlib memang punya banyak sekali fitur, tetapi menguasai dasar-dasar di atas sudah cukup untuk sebagian besar kebutuhan sehari-hari. Teruslah bereksperimen dengan dataset milikmu sendiri — praktik adalah cara terbaik untuk mahir!