Seluruh section ini menggambar dengan Matplotlib karena itulah backend bawaan .plot. Namun .plot sebenarnya adalah lapisan perantara: pandas menerjemahkan tabel menjadi panggilan plot, lalu menyampaikannya ke mesin gambar yang ditunjuk parameter backend. Sejak pandas 0.25, mesin itu bisa diganti — Plotly, HvPlot, dan pustaka lain yang mengikuti kesepakatan backend pandas. Keuntungan praktisnya langsung terasa: satu baris kode yang sama, hasilnya berubah dari gambar statis menjadi grafik interaktif yang bisa di-zoom dan di-hover. Chapter ini membahas cara mengganti backend, perbedaan bentuk hasilnya, dan batasan praktisnya.

Mengganti Backend Sekali Panggil #

Parameter backend="plotly" pada .plot mengarahkan seluruh panggilan itu ke Plotly, dengan syarat pustakanya terpasang di lingkungan. Bentuk hasilnya ikut berganti: Matplotlib mengembalikan objek Axes, sedangkan Plotly mengembalikan objek Figure — objek Python penuh yang bisa diperiksa: jumlah trace, tipe masing-masing, dan nama yang diambil dari nama kolom. Figure Plotly juga tampil interaktif di notebook dan bisa diekspor ke HTML dengan fig.to_html(), pasangan yang cocok untuk laporan web.

python
import pandas as pd

suhu = pd.DataFrame(
    {
        "suhu_max": [31, 32, 30, 29, 31],
        "suhu_min": [24, 25, 23, 22, 24],
    },
    index=pd.date_range("2026-03-02", periods=5, freq="D"),
)

# backend bawaan: matplotlib menghasilkan objek Axes
axes = suhu.plot(kind="line")
print("matplotlib:", type(axes).__name__)

# backend plotly: menghasilkan objek Figure interaktif
fig = suhu.plot(kind="line", backend="plotly")
print("plotly:", type(fig).__name__, "| jumlah trace:", len(fig.data))

# figure tetap objek Python yang bisa diperiksa dan diubah
print("tipe trace pertama:", fig.data[0].type)
print("label trace:", [t.name for t in fig.data])

Output yang Dihasilkan:

text
matplotlib: Axes
plotly: Figure | jumlah trace: 2
tipe trace pertama: scatter
label trace: ['suhu_max', 'suhu_min']

Mari kita telaah baris-baris kuncinya:

  1. Baris 12-13: .plot(kind="line") bawaan menghasilkan Axes Matplotlib, objek statis yang digambar saat dirender.
  2. Baris 16-17: parameter backend="plotly" menghasilkan Figure Plotly berisi dua trace — satu per kolom, persis kebiasaan pandas memecah kolom menjadi garis.
  3. Baris 20-21: Figure masih objek Python biasa: fig.data bisa dihitung dan nama trace-nya bisa dibaca untuk pemeriksaan otomatis.

Kapan Backend Alternatif Layak #

Pemilihan backend kembali ke tempat keluarannya dibuka. Matplotlib tetap pilihan tepat untuk laporan PDF, gambar buku, dan publikasi — output statis, kontrol penuh, dan kebiasaan yang sudah kita bangun sepanjang section ini. Plotly dan sejenisnya unggul saat hasil dibuka di browser: tooltip nilai per titik, zoom dan pan tanpa kode tambahan, serta keterangan garis yang bisa dinyalakan-matikan per serinya. Karena pandas hanya memindahkan mesin gambar, seluruh pola section ini — kind, title, subplots — tetap berlaku di backend lain selama backend itu mendukung; parameter yang tak didukung dilempar sebagai pesan jelas, bukan diabaikan diam-diam.

Kesepakatan di Baliknya #

Kemampuan mengganti backend ini bekerja lewat kesepakatan sederhana: backend harus menyediakan fungsi plot(data, kind=...) yang menerima tabel dan mengembalikan objek siap tampil. Itulah alasan contoh bisa memeriksa fig.data seperti objek biasa — Figure Plotly dibangun dari tabel yang sama, hanya terjemahannya yang berbeda. Efek samping yang baik: kode analisis tidak perlu berubah bila presentasi berganti media, cukup parameter backend di baris plotting. Bila proyek akhirnya butuh dashboard, backend interaktif menjadi langkah alami dari kode yang sudah ada, bukan penulisan ulang.

Backend alternatif menutup section Visualisasi Data: dari .plot statis, kendali penuh Matplotlib, tabel bergaya Styler, sampai grafik interaktif — semua berawal dari satu DataFrame yang sama. Section berikutnya melebarkan cakupan ke Integrasi dengan Ekosistem Python, dimulai dari NumPy sebagai fondasinya.

Dokumentasi resmi yang relevan: User Guide: Chart visualization yang menjelaskan mekanisme backend, pandas.DataFrame.plot untuk parameter backend, dan Plotly Express sebagai contoh ekosistem backend interaktif.