Pengenalan Matplotlib

Matplotlib adalah library Python yang digunakan untuk membuat visualisasi data.
Dengan Matplotlib, data yang awalnya berupa angka atau tabel dapat diubah menjadi bentuk visual seperti:
- Line chart
- Bar chart
- Scatter plot
- Histogram
- Pie chart
- Box plot
- Dan berbagai jenis visualisasi lainnya
Contoh sederhana:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
plt.plot(x, y)
plt.show()
Kode tersebut menghasilkan grafik yang menunjukkan hubungan antara nilai x dan y.
Secara sederhana:
Data
↓
Matplotlib
↓
Visualisasi
↓
Informasi lebih mudah dipahami
Mengapa Visualisasi Data Penting?
Data dalam bentuk angka terkadang sulit dipahami jika hanya dilihat sebagai tabel.
Misalnya kita memiliki data:
Hari Penjualan
1 10
2 15
3 12
4 20
5 25
Dari tabel tersebut kita dapat membaca nilai satu per satu.
Namun, jika data tersebut divisualisasikan:
Penjualan
│
25│ ●
20│ ●
15│ ●
10│ ● ●
│
└────────────────────
1 2 3 4 5
Hari
Pola kenaikan dan penurunan dapat terlihat lebih mudah.
Karena itu, visualisasi membantu kita:
- Melihat pola.
- Menemukan tren.
- Membandingkan data.
- Menemukan nilai yang tidak biasa.
- Memahami hubungan antarvariabel.
- Menyampaikan hasil analisis kepada orang lain.

Matplotlib dalam Data Science
Matplotlib merupakan salah satu library penting dalam ekosistem Data Science Python.
Secara sederhana, kita dapat melihat hubungan beberapa library utama sebagai berikut:
Data Science
│
┌─────────┼─────────┐
↓ ↓ ↓
NumPy Pandas Matplotlib
│ │ │
│ │ ↓
│ │ Visualisasi
│ │
↓ ↓
Data Numerik Data Tabular
Ketiga library tersebut sering digunakan bersama.
NumPy
NumPy berfokus pada:
- Array.
- Operasi numerik.
- Perhitungan matematis.
- Data multidimensi.
Pandas
Pandas berfokus pada:
- DataFrame.
- Series.
- Data tabular.
- Membaca dan mengolah CSV.
- Cleaning dan analisis data.
Matplotlib
Matplotlib berfokus pada:
- Visualisasi.
- Plot.
- Grafik.
- Penyajian hasil analisis secara visual.
Dalam praktik Data Science, ketiganya sering digunakan dalam satu workflow.
Integrasi Matplotlib dengan NumPy
Matplotlib memiliki integrasi yang sangat baik dengan NumPy.
Contohnya:
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 10)
y = x ** 2
plt.plot(x, y)
plt.show()
Pada contoh tersebut:
NumPy
↓
Membuat dan menghitung data
↓
Matplotlib
↓
Memvisualisasikan data
Karena Matplotlib dapat bekerja dengan NumPy Array, kita dapat langsung memberikan array sebagai data untuk plotting.
Contoh:
x = np.array([1, 2, 3, 4, 5])
y = np.array([10, 20, 15, 30, 25])
plt.plot(x, y)
plt.show()
Integrasi Matplotlib dengan Pandas
Matplotlib juga dapat digunakan bersama Pandas.
Misalnya kita memiliki DataFrame:
import pandas as pd
import matplotlib.pyplot as plt
data = {
"Month": ["Jan", "Feb", "Mar", "Apr", "May"],
"Sales": [100, 120, 115, 150, 170]
}
df = pd.DataFrame(data)
Data tersebut dapat divisualisasikan menggunakan Pandas:
df.plot(
x="Month",
y="Sales"
)
plt.show()
Pandas menyediakan interface plotting yang menggunakan Matplotlib di belakangnya untuk banyak jenis visualisasi.
Dengan demikian:
Pandas DataFrame
↓
.plot()
↓
Matplotlib
↓
Visualisasi
Mengapa Menggunakan Matplotlib?
Ada beberapa alasan Matplotlib banyak digunakan dalam Data Science.
Kompatibel dengan Python
Matplotlib merupakan library Python sehingga dapat digunakan langsung dalam program Python.
Kita tidak perlu berpindah ke bahasa pemrograman lain hanya untuk membuat grafik.
Kompatibel dengan NumPy
Matplotlib dapat bekerja dengan NumPy Array.
Hal ini sangat berguna karena banyak proses numerik dalam Data Science menggunakan NumPy.
Terintegrasi dengan Pandas
Pandas memiliki kemampuan plotting yang terintegrasi dengan Matplotlib.
Hal ini memungkinkan kita membuat visualisasi langsung dari DataFrame.
Fleksibel
Matplotlib memberikan banyak kontrol terhadap tampilan grafik.
Kita dapat mengatur:
- Judul.
- Label sumbu.
- Ukuran grafik.
- Legend.
- Grid.
- Marker.
- Line style.
- Warna.
- Batas sumbu.
- Dan berbagai parameter lainnya.
Banyak Digunakan dalam Data Science
Matplotlib telah menjadi salah satu library visualisasi yang umum digunakan dalam ekosistem Python.
Konsep dasar Matplotlib juga menjadi fondasi untuk memahami library visualisasi lain yang menggunakan atau terintegrasi dengan Matplotlib.
Import Matplotlib
Cara umum mengimpor Matplotlib adalah:
import matplotlib.pyplot as plt
pyplot merupakan module yang menyediakan berbagai fungsi untuk membuat visualisasi.
plt adalah alias yang umum digunakan.
Dengan import tersebut kita dapat menggunakan:
plt.plot()
plt.scatter()
plt.bar()
plt.hist()
plt.xlabel()
plt.ylabel()
plt.title()
plt.legend()
plt.show()
Workflow Matplotlib
Ketika membuat visualisasi menggunakan Matplotlib, kita dapat mengikuti workflow berikut:
1. Persiapkan data
↓
2. Buat Figure
↓
3. Buat / gunakan Axes
↓
4. Plot data
↓
5. Tambahkan informasi
↓
6. Kustomisasi
↓
7. Tampilkan grafik
↓
8. Simpan grafik
Workflow tersebut akan menjadi dasar untuk materi Matplotlib berikutnya.
1. Persiapkan Data
Langkah pertama adalah menyiapkan data.
Data dapat berasal dari berbagai sumber, misalnya:
- NumPy Array.
- Pandas DataFrame.
- File CSV.
- Database.
- API.
- Hasil eksperimen Machine Learning.
Contoh menggunakan NumPy:
import numpy as np
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 6, 8, 10])
2. Membuat Figure
Figure dapat dipahami sebagai keseluruhan area atau canvas tempat visualisasi dibuat.
Contoh:
import matplotlib.pyplot as plt
fig = plt.figure()
Secara konseptual:
Figure
┌───────────────────────────────┐
│ │
│ Area grafik │
│ │
└───────────────────────────────┘
Dalam praktik sehari-hari, kita sering menggunakan plt.subplots() karena sekaligus dapat membuat Figure dan Axes.
Contoh:
fig, ax = plt.subplots()
3. Axes
Istilah Axes dalam Matplotlib sering membingungkan bagi pemula.
Axes adalah area tempat data benar-benar diplot, termasuk sistem koordinat seperti sumbu X dan Y.
Contohnya:
Figure
┌───────────────────────────────┐
│ │
│ Axes │
│ ┌───────────────────┐ │
│ │ ● │ │
│ │ ● │ │
│ │ ● │ │
│ └───────────────────┘ │
│ │
└───────────────────────────────┘
Kita dapat membuatnya dengan:
fig, ax = plt.subplots()
Kemudian melakukan plotting:
ax.plot(x, y)
Figure vs Axes
Perbedaan sederhana:
| Komponen | Pengertian |
|---|---|
| Figure | Keseluruhan canvas atau area visualisasi |
| Axes | Area tempat data diplot |
| Axis | Sumbu seperti X-axis dan Y-axis |
Perhatikan bahwa Axes dan Axis adalah istilah yang berbeda.
Secara sederhana:
Figure
│
└── Axes
├── X Axis
└── Y Axis
Pemahaman ini penting ketika mulai menggunakan pendekatan Object-Oriented Matplotlib.
Dua Pendekatan Plotting Matplotlib
Matplotlib dapat digunakan dengan beberapa gaya pemrograman.
Dua pendekatan yang sering dijumpai adalah:
- Pyplot interface
- Object-Oriented interface
Pyplot Interface
Pendekatan ini menggunakan fungsi dari plt.
Contoh:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
plt.plot(x, y)
plt.title("Contoh Grafik")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()
Pendekatan ini relatif mudah dipahami ketika baru belajar Matplotlib.
Object-Oriented Interface
Pendekatan Object-Oriented menggunakan objek Figure dan Axes.
Contoh:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title("Contoh Grafik")
ax.set_xlabel("X")
ax.set_ylabel("Y")
plt.show()
Pendekatan ini memberikan kontrol yang lebih jelas terhadap objek visualisasi.
Pendekatan ini juga sangat berguna ketika membuat:
- Banyak grafik.
- Multiple Axes.
- Subplot.
- Visualisasi yang kompleks.
- Visualisasi dalam aplikasi atau laporan.
Pendekatan Mana yang Digunakan?
Untuk pembelajaran awal, penggunaan plt dapat membantu memahami konsep dasar plotting.
Contohnya:
plt.plot(x, y)
plt.show()
Namun, ketika visualisasi menjadi lebih kompleks, pendekatan Object-Oriented biasanya lebih mudah dikelola.
Contohnya:
fig, ax = plt.subplots()
ax.plot(x, y)
Tidak perlu menganggap salah satu pendekatan sebagai satu-satunya cara yang benar.
Yang penting adalah memahami bagaimana Figure, Axes, dan data saling berhubungan.
Membuat Plot Sederhana
Mari membuat visualisasi sederhana.
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
plt.plot(x, y)
plt.show()
Kode:
plt.plot(x, y)
digunakan untuk membuat line plot.
Sedangkan:
plt.show()
digunakan untuk menampilkan visualisasi.
Menambahkan Judul
Judul membantu menjelaskan apa yang ditampilkan oleh grafik.
plt.title("Pertumbuhan Data")
Contoh lengkap:
plt.plot(x, y)
plt.title("Pertumbuhan Data")
plt.show()
Menambahkan Label Sumbu
Kita dapat memberikan label untuk sumbu X dan Y.
plt.xlabel("Hari")
plt.ylabel("Nilai")
Contoh lengkap:
plt.plot(x, y)
plt.title("Pertumbuhan Data")
plt.xlabel("Hari")
plt.ylabel("Nilai")
plt.show()
Visualisasi yang baik sebaiknya memberikan konteks yang cukup sehingga pembaca dapat memahami apa yang direpresentasikan oleh masing-masing sumbu.
Menambahkan Grid
Grid dapat membantu pembaca memperkirakan nilai pada grafik.
plt.grid()
Contoh:
plt.plot(x, y)
plt.title("Pertumbuhan Data")
plt.xlabel("Hari")
plt.ylabel("Nilai")
plt.grid()
plt.show()
Menambahkan Legend
Jika terdapat lebih dari satu data dalam grafik, kita dapat menggunakan legend.
Contoh:
plt.plot(x, y, label="Data Penjualan")
plt.title("Penjualan")
plt.xlabel("Bulan")
plt.ylabel("Jumlah")
plt.legend()
plt.show()
Parameter:
label="Data Penjualan"
memberikan nama untuk data tersebut.
Kemudian:
plt.legend()
menampilkan keterangannya.
Menyimpan Visualisasi
Visualisasi tidak hanya dapat ditampilkan di layar.
Kita juga dapat menyimpannya menjadi file.
Contoh:
plt.savefig("grafik.png")
Format yang dapat digunakan bergantung pada backend dan kebutuhan, tetapi format umum antara lain:
PNG
JPG/JPEG
SVG
PDF
Contoh:
plt.plot(x, y)
plt.title("Pertumbuhan Data")
plt.savefig("pertumbuhan-data.png")
plt.show()
Biasanya savefig() dilakukan sebelum show() agar kita dapat mengontrol proses penyimpanan dengan jelas.
Contoh Workflow Lengkap
Berikut contoh sederhana dari awal hingga menyimpan grafik:
import numpy as np
import matplotlib.pyplot as plt
# 1. Persiapkan data
x = np.arange(1, 6)
y = np.array([10, 15, 13, 20, 25])
# 2. Membuat plot
plt.plot(x, y, label="Penjualan")
# 3. Menambahkan informasi
plt.title("Data Penjualan")
plt.xlabel("Hari")
plt.ylabel("Jumlah")
# 4. Menambahkan legend dan grid
plt.legend()
plt.grid()
# 5. Menyimpan grafik
plt.savefig("penjualan.png")
# 6. Menampilkan grafik
plt.show()
Workflow tersebut dapat diringkas menjadi:
Import
↓
Data
↓
Plot
↓
Title
↓
Labels
↓
Legend / Grid
↓
Save
↓
Show
Troubleshooting Matplotlib
Ketika belajar Matplotlib, hasil grafik terkadang tidak sesuai dengan yang diharapkan.
Hal tersebut merupakan bagian normal dari proses belajar.
Salah satu prinsip yang berguna adalah:
If in doubt, run the code.
Artinya, ketika ragu terhadap suatu kode, jalankan kode tersebut dan amati hasilnya.
Langkah Troubleshooting
Jika grafik tidak sesuai, lakukan langkah berikut.
1. Periksa Data
Pastikan data yang digunakan memang benar.
print(x)
print(y)
Periksa juga panjang data:
print(len(x))
print(len(y))
Untuk line plot sederhana, jumlah nilai X dan Y harus sesuai.
2. Periksa Shape NumPy Array
Jika menggunakan NumPy:
print(x.shape)
print(y.shape)
Shape yang tidak sesuai dapat menyebabkan error atau menghasilkan visualisasi yang tidak diharapkan.
3. Jalankan Kode Secara Bertahap
Daripada langsung menjalankan program yang panjang, coba jalankan bagian kecil terlebih dahulu.
Misalnya:
plt.plot(x, y)
Jika berhasil, tambahkan:
plt.title("Data")
Kemudian:
plt.xlabel("X")
plt.ylabel("Y")
Dengan cara ini kita dapat mengetahui bagian mana yang menyebabkan masalah.
4. Baca Pesan Error
Jangan langsung mengabaikan pesan error.
Pesan error biasanya memberikan informasi tentang masalah yang terjadi.
Contohnya:
ValueError
dapat mengindikasikan adanya masalah pada nilai atau bentuk data.
Gunakan pesan error sebagai petunjuk untuk mencari penyebabnya.
5. Gunakan Dokumentasi
Jika tidak mengetahui parameter suatu fungsi, dokumentasi resmi Matplotlib dapat menjadi sumber referensi.
Kita dapat memeriksa:
help(plt.plot)
atau:
help(plt.scatter)
Dokumentasi juga menjelaskan parameter yang tersedia dan contoh penggunaannya.
6. Cari Referensi Masalah
Jika masalah belum ditemukan, kita dapat mencari referensi dari komunitas pemrograman seperti Stack Overflow.
Namun, jangan hanya menyalin solusi.
Pahami:
Masalah
↓
Penyebab
↓
Solusi
↓
Mengapa solusi tersebut bekerja?
Dengan demikian, kemampuan troubleshooting akan berkembang.
Praktik Terbaik Saat Belajar Matplotlib
Beberapa kebiasaan yang baik:
Mulai dari Data Sederhana
Jangan langsung menggunakan dataset yang sangat besar.
Mulailah dengan:
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
Setelah memahami konsep, gunakan dataset yang lebih kompleks.
Periksa Data Sebelum Plotting
Biasakan memeriksa:
print(x)
print(y)
atau:
print(df.head())
jika menggunakan Pandas.
Gunakan Label yang Jelas
Hindari grafik yang tidak memiliki konteks.
Lebih baik:
plt.xlabel("Bulan")
plt.ylabel("Penjualan")
daripada hanya:
plt.xlabel("X")
plt.ylabel("Y")
untuk visualisasi final.
Gunakan Judul yang Informatif
Judul sebaiknya menjelaskan apa yang sedang ditampilkan.
Contoh:
plt.title("Tren Penjualan Bulanan")
lebih informatif daripada:
plt.title("Grafik")
Jangan Berlebihan dalam Kustomisasi
Tujuan visualisasi adalah menyampaikan informasi.
Terlalu banyak elemen dekoratif dapat membuat grafik sulit dibaca.
Fokus utama:
Data
↓
Pola
↓
Informasi
Hubungan Matplotlib dengan Machine Learning
Visualisasi merupakan bagian penting dalam workflow Machine Learning.
Contohnya:
Dataset
↓
Exploratory Data Analysis
↓
Visualisasi
↓
Memahami data
↓
Preprocessing
↓
Training Model
↓
Evaluasi
↓
Visualisasi hasil
Matplotlib dapat digunakan untuk membantu:
- Memahami distribusi data.
- Melihat hubungan antarvariabel.
- Menemukan outlier.
- Membandingkan hasil model.
- Memvisualisasikan training history.
- Menampilkan hasil prediksi.
Karena itu, kemampuan membuat grafik merupakan bagian penting dari kemampuan Data Science.
Ringkasan
Matplotlib adalah library Python untuk membuat visualisasi data.
Konsep utama yang perlu dipahami:
Matplotlib
↓
Visualisasi Data
↓
Figure
↓
Axes
↓
Plot
↓
Customization
↓
Save / Show
Matplotlib memiliki integrasi yang baik dengan:
NumPy → Data numerik
Pandas → Data tabular
Matplotlib → Visualisasi
Workflow dasarnya:
1. Persiapkan data
2. Buat Figure / Axes
3. Plot data
4. Tambahkan title
5. Tambahkan label
6. Tambahkan legend jika diperlukan
7. Kustomisasi
8. Simpan atau tampilkan
Fungsi Dasar yang Perlu Diingat
| Fungsi | Kegunaan |
|---|---|
plt.plot() | Membuat line plot |
plt.scatter() | Membuat scatter plot |
plt.bar() | Membuat bar chart |
plt.hist() | Membuat histogram |
plt.title() | Memberikan judul |
plt.xlabel() | Memberikan label sumbu X |
plt.ylabel() | Memberikan label sumbu Y |
plt.legend() | Menampilkan legend |
plt.grid() | Menampilkan grid |
plt.show() | Menampilkan grafik |
plt.savefig() | Menyimpan grafik |
plt.subplots() | Membuat Figure dan Axes |
Checklist Pembelajaran
Setelah mempelajari materi ini, Anda seharusnya dapat:
- Menjelaskan apa itu Matplotlib.
- Menjelaskan fungsi visualisasi data.
- Menjelaskan hubungan NumPy, Pandas, dan Matplotlib.
- Mengimpor Matplotlib menggunakan
pyplot. - Membuat line plot sederhana.
- Memahami konsep Figure dan Axes.
- Menjelaskan perbedaan Axes dan Axis.
- Memahami pyplot interface.
- Memahami Object-Oriented interface.
- Menambahkan judul pada grafik.
- Menambahkan label sumbu.
- Menambahkan legend.
- Menambahkan grid.
- Menyimpan grafik menggunakan
savefig(). - Melakukan troubleshooting sederhana pada grafik.
Latihan
Latihan 1 - Line Plot
Buat data:
x = [1, 2, 3, 4, 5, 6]
y = [10, 15, 12, 20, 25, 30]
Kemudian:
- Buat line plot.
- Tambahkan judul.
- Tambahkan label X.
- Tambahkan label Y.
- Tambahkan grid.
- Tampilkan grafik.
Latihan 2 - NumPy dan Matplotlib
Gunakan NumPy untuk membuat data:
import numpy as np
x = np.arange(0, 11)
y = x ** 2
Kemudian visualisasikan menggunakan Matplotlib.
Latihan 3 - Figure dan Axes
Gunakan pendekatan Object-Oriented:
fig, ax = plt.subplots()
Kemudian buat sebuah line plot menggunakan:
ax.plot(x, y)
Tambahkan:
- Title.
- X label.
- Y label.
- Grid.
Latihan 4 - Menyimpan Grafik
Buat sebuah grafik kemudian simpan menggunakan:
plt.savefig("hasil-grafik.png")
Periksa apakah file berhasil dibuat pada folder kerja Anda.