Topik ini membahas pengaturan tampilan matplotlib sebagai keputusan desain yang disengaja, bukan bawaan yang diterima begitu saja. Tiga lapis pengaturan dibahas berurutan, yaitu rcParams sebagai pengaturan default global, style sheet sebagai paket pengaturan siap pakai, dan pengekangan manual untuk keputusan kecil yang paling menentukan keterbacaan. Pembahasan ditutup dengan posisi seaborn sebagai lapisan di atas matplotlib.
rcParams: pengaturan default global#
rcParams adalah kamus konfigurasi milik matplotlib yang menyimpan hampir seluruh default, mulai dari ukuran figure, warna garis, hingga keberadaan grid. Setiap kuncinya meniru nama pengaturan pada berkas konfigurasi matplotlibrc, sehingga pola bertingkat seperti axes.grid dan figure.figsize terbaca sebagai lokasi pengaturan. Nilai kamus ini aktif sejak modul matplotlib dimuat dan berlaku untuk setiap figure yang dibuat sesudahnya. Nilai yang tidak disentuh tetap digunakan apa adanya, sehingga skrip yang sama menghasilkan gambar yang konsisten antareksekusi.
Entri rcParams dibaca dan diubah seperti kamus biasa. Potongan berikut mengaktifkan grid untuk semua figure yang dibuat setelahnya, satu keputusan yang ditulis sekali dan berlaku menyeluruh.
import matplotlib.pyplot as plt
plt.rcParams["axes.grid"] = True # grid aktif untuk figure berikutnyaKeberlakuan global adalah kekuatan sekaligus tanggung jawab rcParams. Nilai yang diubah di tengah skrip memengaruhi semua gambar setelahnya, sehingga perubahan sebaiknya diletakkan di awal berkas atau dipulihkan setelah digunakan. Dengan disiplin itu, rcParams menjadi tempat menyimpan keputusan gaya satu kali untuk seluruh laporan, dan skrip yang panjang tetap menghasilkan panel-panel yang seragam.
Style sheet siap pakai#
Style sheet adalah paket entri rcParams yang diberi nama dan dapat diaktifkan sekaligus. Daftar paket yang tersedia diperoleh dari plt.style.available, dan paket diaktifkan dengan plt.style.use() atau diikat pada blok with plt.style.context(). Mekanisme style.context() mengembalikan rcParams ke nilai semula setelah blok berakhir, sehingga cocok untuk membandingkan dua gaya dalam satu skrip.
Skrip gaya.py mencetak sebagian daftar style, kemudian menggambar data yang sama dua kali, pertama dengan default dan kedua dengan paket seaborn-v0_8-whitegrid, lalu menyimpan keduanya sebagai SVG. Jalankan skrip dari direktori topiknya dan bandingkan dua berkas yang dihasilkannya.
import csv
import matplotlib.pyplot as plt
with open("nilai_ujian.csv", newline="", encoding="utf-8") as f:
baris = list(csv.DictReader(f))
nilai = [int(r["nilai_matematika"]) for r in baris if r["kelas"] == "7A"]
urut = range(1, len(nilai) + 1)
tersedia = plt.style.available
print("banyak style tersedia :", len(tersedia))
print("sebagian style :", tersedia[:8])
print("style ggplot tersedia :", "ggplot" in tersedia)
# panel 1: pengaturan default matplotlib
fig, ax = plt.subplots(figsize=(6, 3.5))
ax.plot(urut, nilai, marker="o")
ax.set_title("Nilai matematika kelas 7A (default)")
ax.set_xlabel("Nomor urut siswa")
ax.set_ylabel("Nilai matematika")
fig.savefig("gaya-default.svg")
print("axes.grid default :", plt.rcParams["axes.grid"])
# panel 2: style seaborn-v0_8-whitegrid pada data yang sama
with plt.style.context("seaborn-v0_8-whitegrid"):
fig, ax = plt.subplots(figsize=(6, 3.5))
ax.plot(urut, nilai, marker="o")
ax.set_title("Nilai matematika kelas 7A (seaborn-v0_8-whitegrid)")
ax.set_xlabel("Nomor urut siswa")
ax.set_ylabel("Nilai matematika")
fig.savefig("gaya-whitegrid.svg")
print("axes.grid whitegrid :", plt.rcParams["axes.grid"])banyak style tersedia : 28
sebagian style : ['Solarize_Light2', '_classic_test_patch', '_mpl-gallery', '_mpl-gallery-nogrid', 'bmh', 'classic', 'dark_background', 'fast']
style ggplot tersedia : True
axes.grid default : False
axes.grid whitegrid : TrueKeluaran menunjukkan 28 style tersedia pada lingkungan ini, termasuk ggplot yang meniru tampilan ggplot2, dan entri axes.grid berubah dari False menjadi True di dalam blok gaya. Perbandingan kedua gambar memperlihatkan perubahan yang bekerja sebagai satu paket: grid putih muncul, warna latar berubah, dan ketebalan garis diperhalus tanpa satu pun pengaturan manual. Data yang digambar sama persis, yaitu nilai matematika kelas 7A menurut nomor urut siswa, sehingga seluruh perbedaan tampak berasal dari paket gaya.
Pengekangan sebagai pilihan desain#
Di luar paket gaya, keterbacaan ditentukan oleh keputusan kecil yang diterapkan konsisten. Tiga keputusan mendasar bekerja pada hampir semua grafik, yaitu grid yang tipis dan menunjang pembacaan nilai, satu keluarga font untuk seluruh laporan, serta label sumbu yang menyebut besaran sekaligus satuan, misalnya persen kehadiran atau nilai pada skala 0 sampai 100. Kombinasi kecil ini lebih menentukan kesan akhir daripada banyaknya pilihan paket gaya yang tersedia.
Pengekangan dinyatakan melalui kode, bukan melalui kebiasaan yang hanya diingat. Grid tipis ditetapkan dengan ax.grid(True, linewidth=0.5, alpha=0.6) atau melalui rcParams, satu font ditetapkan pada kunci font.family, dan satuan ditulis pada label sumbu. Keputusan yang sama berulang di semua panel laporan, sehingga pembaca menyerap aturan tampilan sekali lalu menggunakannya untuk membaca seluruh panel.
Banyaknya pilihan gaya yang tersedia justru menuntut pengekangan. Sebuah laporan yang menggunakan lima paket gaya berbeda pada lima panel terlihat seperti kumpulan gambar terpisah, sedangkan laporan dengan satu gaya terbaca sebagai satu dokumen. Penataan gaya yang disengaja berarti menetapkan pilihan sekali, menyimpannya pada rcParams atau style sheet, dan membiarkan kode berbicara dengan suara yang sama di semua gambar.
Posisi seaborn di atas matplotlib#
seaborn adalah pustaka API tingkat tinggi yang dibangun di atas matplotlib, bukan penggantinya. Tugas utamanya dua arah: menstandarkan gaya, seperti palet warna dan tampilan statistik yang konsisten, serta menyediakan fungsi yang menghitung statistik dan menggambar sekaligus, misalnya distribusi dan regresi. Setiap gambar seaborn pada akhirnya adalah objek matplotlib, sehingga metode ax.set_xlabel() dan fig.savefig() tetap berlaku pada hasilnya.
Jembatan gaya antara kedua pustaka tampak jelas pada nama paket seaborn-v0_8-whitegrid yang digunakan di atas, yaitu style sheet matplotlib yang meniru tema seaborn. Arah sebaliknya tersedia melalui sns.set_theme(), yang menyetel rcParams matplotlib sesuai tema seaborn sehingga gambar matplotlib murni ikut bergaya. Penggunaan yang lazim adalah seaborn untuk analisis statistik cepat, kemudian matplotlib untuk penyempurnaan panel sampai siap dipublikasikan.
Pembagian kerja tersebut menata arah kerja dengan jelas. matplotlib menyediakan kontrol penuh atas setiap artist, sedangkan seaborn menyediakan pintasan statistik yang tepat untuk eksplorasi. Karena gambar seaborn pada akhirnya berupa objek matplotlib, keterampilan mengubah artist tetap berlaku ketika hasilnya perlu diberi judul, label, atau komposisi tambahan.
Ringkasan#
rcParamsmenyimpan default global dan menjadi tempat keputusan gaya yang berlaku menyeluruh.- Style sheet mengemas entri rcParams menjadi paket bernama, dengan
plt.style.use()untuk penggantian permanen danplt.style.context()untuk penggantian sementara. - Pengekangan kecil seperti grid tipis, satu font, dan label bersatuan menentukan keterbacaan lebih daripada banyaknya pilihan gaya.
- seaborn bekerja di atas matplotlib sebagai lapisan gaya dan statistik, dengan
sns.set_theme()sebagai jembatan ke rcParams.
Referensi#
- Style sheets reference — Matplotlib — Galeri resmi tampilan setiap style sheet bawaan pada data yang sama.
- An introduction to seaborn — seaborn — Pengantar resmi posisi seaborn di atas matplotlib beserta fitur gaya dan statistiknya.
- API reference — seaborn — Daftar fungsi seaborn dikelompokkan menurut tugas, termasuk set_theme pada pengaturan tampilan.