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:

python
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:

text
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:

TujuanVia parameter .plotVia objek Axes
Judultitle=ax.set_title()
Label sumbuxlabel=, ylabel=ax.set_xlabel(), ax.set_ylabel()
Legendlegend=False lalu ax.legend([...])ax.legend(labels=, loc=, frameon=)
Garis bantu dan batasgrid=, xlim=, ylim=ax.grid(), ax.set_xlim(), ax.set_ylim()
Rotasi labelrot=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.