Selama section ini kita puas dengan label bawaan: judul kosong, label sumbu dari nama kolom, dan legend dari nama-nama kolom. Untuk grafik eksplorasi pribadi, bawaan itu cukup. Grafik yang dikirim ke laporan atau presentasi menuntut lebih: judul yang menjelaskan kesimpulan, label sumbu yang berdiri sendiri, dan legend yang tidak menutupi data. Chapter ini mengurus semuanya melalui dua jalur: parameter langsung pada pemanggilan .plot, dan method set_* pada objek Axes hasilnya.
Judul dan Label Sumbu via Parameter .plot #
Pemanggilan .plot menerima parameter title, xlabel, dan ylabel yang langsung diterapkan pada Axes, plus parameter grid dan ylim yang kerap menyertai laporan:
import matplotlib
matplotlib.use("Agg")
import pandas as pd
from pathlib import Path
bulan = ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun"]
penjualan = pd.DataFrame(
{
"Buku Tulis": [320, 340, 310, 380, 400, 420],
"Pulpen": [180, 210, 230, 220, 250, 270],
"Kertas HVS": [260, 250, 290, 300, 280, 310],
},
index=pd.Index(bulan, name="bulan"),
)
ax = penjualan.plot.line(
title="Penjualan Toko Alat Tulis Sinar - S1 2026",
xlabel="Bulan",
ylabel="Unit terjual",
grid=True,
ylim=(0, 500),
)
print("Tipe objek :", type(ax).__name__)
print("Judul :", repr(ax.get_title()))
print("Label sumbu x :", repr(ax.get_xlabel()))
print("Label sumbu y :", repr(ax.get_ylabel()))
print("Batas sumbu y :", tuple(float(v) for v in ax.get_ylim()))
ax.get_figure().savefig("label_legend.png", dpi=100)
print("\nPlot tersimpan sebagai label_legend.png")
ax_tanpa = penjualan.plot.line(legend=False)
print("\nlegend=False -> get_legend() None:", ax_tanpa.get_legend() is None)
ax_tanpa.legend(["Buku", "Pulpen", "Kertas"], loc="upper left", frameon=False)
print("Label legend baru :", [t.get_text() for t in ax_tanpa.get_legend().get_texts()])
ax_rot = penjualan.plot.bar(rot=45)
print("\nrot=45 -> derajat label x:", [t.get_rotation() for t in ax_rot.get_xticklabels()][:2])
ax_tanpa.set_title("Judul via set_title")
ax_tanpa.set_xlabel("Bulan")
ax_tanpa.set_ylabel("Unit terjual")
print("\nset_title/set_xlabel/set_ylabel:",
repr(ax_tanpa.get_title()), repr(ax_tanpa.get_xlabel()), repr(ax_tanpa.get_ylabel()))
Path("label_legend.png").unlink()Output yang Dihasilkan:
Tipe objek : Axes
Judul : 'Penjualan Toko Alat Tulis Sinar - S1 2026'
Label sumbu x : 'Bulan'
Label sumbu y : 'Unit terjual'
Batas sumbu y : (0.0, 500.0)
Plot tersimpan sebagai label_legend.png
legend=False -> get_legend() None: True
Label legend baru : ['Buku', 'Pulpen', 'Kertas']
rot=45 -> derajat label x: [45.0, 45.0]
set_title/set_xlabel/set_ylabel: 'Judul via set_title' 'Bulan' 'Unit terjual'Output membuktikan setiap parameter sampai ke objeknya: ax.get_title() mengembalikan 'Penjualan Toko Alat Tulis Sinar - S1 2026', ax.get_xlabel() mengembalikan 'Bulan' — menggantikan label bawaan 'bulan' dari nama index — dan ax.get_ylabel() mengisi label sumbu y yang sebelumnya kosong pada plot multi-kolom. grid=True mengaktifkan garis bantu, sedangkan ylim=(0, 500) mengunci batas sumbu y sehingga grafik dengan data berbeda tetap sebanding.
Mengatur Legend Secara Manual #
Parameter legend=False menghilangkan legend bawaan; method ax.legend() lalu memasangnya kembali dengan label dan posisi pilihan kita. Pada output, ax.get_legend() bernilai None setelah legend=False, lalu label berubah menjadi ['Buku', 'Pulpen', 'Kertas'] — label ringkas yang tidak bisa dihasilkan pandas otomatis karena tidak berasal dari nama kolom. Parameter loc="upper left" memindahkan legend ke kiri atas dan frameon=False melepas kotaknya.
Rotasi Label dan Method set_* pada Axes #
Jalur kedua bekerja setelah plot jadi, dan berlaku untuk semua plot Matplotlib — bukan hanya hasil pandas. Parameter rot=45 memutar label sumbu x sebesar 45 derajat, terbukti dari daftar get_rotation() yang tercetak [45.0, 45.0]. Method set_title, set_xlabel, dan set_ylabel lalu mengubah judul dan label pada ax_tanpa, dengan hasil yang terbaca lewat get_title() dan kawannya.
Tabel kecil ini merangkum dua jalur pengaturan:
| Tujuan | Via parameter .plot | Via objek Axes |
|---|---|---|
| Judul | title= | ax.set_title() |
| Label sumbu | xlabel=, ylabel= | ax.set_xlabel(), ax.set_ylabel() |
| Legend | legend=False lalu ax.legend([...]) | ax.legend(labels=, loc=, frameon=) |
| Garis bantu dan batas | grid=, xlim=, ylim= | ax.grid(), ax.set_xlim(), ax.set_ylim() |
| Rotasi label | rot= | ax.tick_params(axis="x", rotation=45) |
Parameter-parameter ini menutup kebutuhan plot tunggal yang rapi. Layout yang lebih kompleks — dua grafik berdampingan, atau dua sumbu y pada satu gambar — menuntut kendali langsung atas objek Figure dan Axes, dan itulah topik penutup section ini.
Referensi resmi: pandas.DataFrame.plot
yang mendaftar parameter title, xlabel, ylabel, grid, rot, dan legend, user guide visualization
untuk contoh pengaturan legend, serta matplotlib.org/stable
untuk referensi lengkap objek Axes.