Label, Judul, dan Menyimpan Figure
Tambahkan label sumbu, judul, legenda, dan format tanda skala, lalu simpan figure berkualitas publikasi dengan savefig().
Label, Judul, dan Menyimpan Figure adalah pelajaran Pandas & NumPy Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Pandas & NumPy Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Pandas & NumPy Academy mencakup 4 pelajaran total.
Dari Plot ke Publikasi
Diagram hanya efektif jika sumbunya diberi label, judulnya menjelaskan kesimpulan utama, dan diagram tersebut disimpan dengan resolusi yang cukup tinggi untuk media yang dituju. Pelajaran ini membahas penyempurnaan akhir yang mengubah plot eksploratif sederhana menjadi gambar yang rapi dan sesuai untuk laporan, dasbor, atau publikasi akademik: label sumbu, pemformatan tanda skala, judul, legenda, anotasi, dan ekspor file.
Label Sumbu dengan set_xlabel dan set_ylabel
Tetapkan label sumbu yang deskriptif dengan ax.set_xlabel() dan ax.set_ylabel(). Selalu sertakan satuan dalam label (misalnya, 'Revenue (USD)', bukan hanya 'Revenue'). Gunakan fontsize untuk memperbesar label dalam presentasi, dan labelpad untuk menambahkan jarak antara sumbu dan teks label ketika tanda skala berukuran besar.
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots(figsize=(7, 4))
x = np.arange(1, 13)
y = np.random.randint(100, 500, 12)
ax.plot(x, y, 'o-', color='steelblue')
ax.set_xlabel('Month', fontsize=12, labelpad=8)
ax.set_ylabel('Revenue (USD thousands)', fontsize=12, labelpad=8)
# plt.show()
plt.close()Judul dengan set_title dan suptitle
ax.set_title() menetapkan judul di atas satu Axes. Untuk gambar dengan beberapa panel, fig.suptitle() menambahkan judul bersama di atas semua subplot. Kendalikan ukuran fon dengan fontsize dan posisi vertikal dengan y (nilai bawaan 1.0). Judul yang baik menyatakan wawasan utama dari diagram, bukan sekadar menjelaskan sumbunya — bandingkan 'Monthly Revenue' dengan 'Revenue Peaked in Q3 and Fell 20% in Q4'.
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 4))
ax1.plot([1,2,3], [1,4,9])
ax1.set_title('Subplot One', fontsize=11)
ax2.bar(['A','B','C'], [3,7,2])
ax2.set_title('Subplot Two', fontsize=11)
# Shared figure title
fig.suptitle('Annual Overview Dashboard', fontsize=14, fontweight='bold', y=1.02)
plt.tight_layout()
plt.close()Mengendalikan Label Tanda Skala
Label tanda skala bawaan Matplotlib sering kali sudah memadai, tetapi terkadang Anda memerlukan label khusus. Gunakan ax.set_xticks() untuk menentukan posisi tanda skala dan ax.set_xticklabels() untuk menetapkan labelnya. Berikan rotation=45 untuk memiringkan label yang panjang agar tidak saling bertumpuk. Parameter ha='right' (perataan horizontal) memastikan label yang diputar tertambat dengan benar pada tanda skalanya.
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
values = np.random.randint(200, 600, 12)
fig, ax = plt.subplots(figsize=(9, 4))
ax.bar(range(12), values, color='steelblue')
ax.set_xticks(range(12))
ax.set_xticklabels(months, rotation=45, ha='right', fontsize=10)
ax.set_ylabel('Revenue')
plt.tight_layout()
plt.close()Memformat Nilai Tanda Skala
Gunakan pemformat dari matplotlib.ticker untuk menampilkan nilai tanda skala dalam format yang mudah dipahami. FuncFormatter menerima fungsi yang memperoleh nilai tanda skala dan mengembalikan string yang telah diformat. Pola yang umum meliputi pemisah ribuan, simbol mata uang, tanda persentase, dan notasi ilmiah. Terapkan dengan ax.yaxis.set_major_formatter(formatter).
from matplotlib.ticker import FuncFormatter
def millions_fmt(x, pos):
return f'${x/1e6:.1f}M'
fig, ax = plt.subplots(figsize=(7, 4))
ax.bar(['Q1', 'Q2', 'Q3', 'Q4'], [1.2e6, 1.8e6, 2.1e6, 1.9e6], color='steelblue')
ax.yaxis.set_major_formatter(FuncFormatter(millions_fmt))
ax.set_title('Quarterly Revenue')
ax.set_ylabel('Revenue')
plt.tight_layout()
plt.close()Legenda dengan ax.legend()
Panggil ax.legend() untuk menampilkan legenda bagi semua elemen plot yang memiliki parameter label. Sesuaikan dengan loc (posisi, misalnya 'upper right', 'lower left'), ncol (jumlah kolom), framealpha (transparansi kotak), dan fontsize. Menempatkan legenda di luar area plot menggunakan bbox_to_anchor bersama loc.
fig, ax = plt.subplots(figsize=(7, 4))
for region, color in [('East','steelblue'),('West','coral'),('North','green')]:
ax.plot(range(12), np.random.randint(100, 400, 12),
marker='o', label=region, color=color)
ax.legend(loc='upper right', ncol=1, framealpha=0.8, fontsize=10)
ax.set_title('Monthly Sales by Region')
plt.close()Menambahkan Anotasi Teks
ax.annotate(text, xy=(x_point, y_point), xytext=(x_text, y_text), arrowprops=...) menambahkan label teks dengan panah opsional yang menunjuk ke titik data tertentu. Gunakan ini untuk menyoroti nilai maksimum, anomali, atau peristiwa penting pada diagram. Dict arrowprops mengendalikan gaya panah: arrowstyle='->' adalah panah sederhana.
y_vals = np.array([120, 180, 310, 250, 420, 380, 290])
x_vals = np.arange(len(y_vals))
peak_idx = np.argmax(y_vals)
fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(x_vals, y_vals, 'o-', color='steelblue')
ax.annotate(f'Peak: {y_vals[peak_idx]}',
xy=(peak_idx, y_vals[peak_idx]),
xytext=(peak_idx - 2, y_vals[peak_idx] + 30),
arrowprops={'arrowstyle': '->', 'color': 'red'},
fontsize=10, color='red')
plt.close()Menambahkan Garis Referensi Horizontal dan Vertikal
ax.axhline(y_value) menggambar garis horizontal melintasi seluruh lebar Axes pada nilai-y yang ditentukan. ax.axvline(x_value) menggambar garis vertikal. Keduanya menerima parameter color, linestyle, dan linewidth. Garis referensi biasanya digunakan untuk menandai target, ambang batas, atau tanggal peristiwa pada diagram deret waktu.
fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(range(10), np.random.randint(100, 400, 10), 'o-', color='steelblue')
# Target line
ax.axhline(y=250, color='red', linestyle='--', lw=1.5, label='Target')
# Event line
ax.axvline(x=5, color='orange', linestyle=':', lw=1.5, label='Campaign start')
ax.legend()
ax.set_title('Revenue vs Target')
plt.close()Menata Gaya dengan Tema
Matplotlib menyertakan beberapa lembar gaya bawaan yang mengubah tampilan keseluruhan semua gambar tanpa perubahan kode: 'seaborn-v0_8-whitegrid', 'fivethirtyeight', 'ggplot', 'bmh', dan sebagainya. Terapkan gaya dengan plt.style.use('style_name') di awal skrip Anda. Gunakan plt.style.context('style_name') sebagai pengelola konteks untuk menerapkan gaya hanya dalam suatu blok.
# Apply a style globally
plt.style.use('seaborn-v0_8-whitegrid')
fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(range(10), np.random.randn(10).cumsum())
ax.set_title('Seaborn Whitegrid Style')
plt.close()
# Reset to default
plt.rcdefaults()Menyimpan Gambar dengan savefig()
fig.savefig('filename.png') menyimpan gambar ke sebuah file. Parameter utama: dpi (titik per inci — gunakan 150 untuk layar, 300 untuk cetak), bbox_inches='tight' (mencegah label terpotong), dan format (ditentukan dari ekstensi atau dinyatakan secara eksplisit). Format yang umum: '.png' (raster, cocok untuk web), '.pdf' (vektor, cocok untuk cetak), '.svg' (vektor, dapat diedit di Illustrator).
fig, ax = plt.subplots(figsize=(8, 5))
ax.plot(range(10), np.random.randn(10), 'o-')
ax.set_title('Export Example')
ax.set_xlabel('Step')
ax.set_ylabel('Value')
# Save as PNG (screen quality)
fig.savefig('/tmp/chart_screen.png', dpi=150, bbox_inches='tight')
# Save as PDF (print quality)
fig.savefig('/tmp/chart_print.pdf', dpi=300, bbox_inches='tight')
plt.close()
print('Figures saved.')Contoh Lengkap: Diagram Laporan yang Rapi
Berikut alur kerja lengkap yang menggabungkan semua teknik dalam pelajaran ini: diagram deret waktu yang rapi dengan label sumbu, tanda skala sumbu-y yang telah diformat, garis target horizontal, anotasi pada titik puncak, dan ekspor ke PNG beresolusi tinggi. Inilah pola yang akan Anda gunakan untuk setiap diagram yang dimasukkan ke dalam laporan atau dasbor.
from matplotlib.ticker import FuncFormatter
fig, ax = plt.subplots(figsize=(9, 5))
months = list(range(1, 13))
revenue = [120, 145, 132, 160, 175, 190, 210, 185, 220, 200, 240, 260]
peak = max(revenue)
peak_idx = revenue.index(peak)
ax.plot(months, revenue, 'o-', color='steelblue', lw=2, markersize=6)
ax.axhline(y=180, color='red', ls='--', lw=1.2, label='Target: $180K')
ax.annotate(f'Peak ${peak}K', xy=(peak_idx+1, peak),
xytext=(peak_idx-1.5, peak+15),
arrowprops={'arrowstyle': '->'}, fontsize=9)
ax.set_xticks(months)
ax.set_xticklabels(['Jan','Feb','Mar','Apr','May','Jun',
'Jul','Aug','Sep','Oct','Nov','Dec'], rotation=45, ha='right')
ax.yaxis.set_major_formatter(FuncFormatter(lambda x,p: f'${x:.0f}K'))
ax.set_title('2024 Monthly Revenue vs Target', fontsize=13, fontweight='bold')
ax.set_ylabel('Revenue')
ax.legend()
plt.tight_layout()
plt.close()Pemeriksaan Singkat
Uji pemahaman Anda tentang label, judul, dan penyimpanan gambar dari pelajaran ini.
Rangkuman Pelajaran
Dalam pelajaran ini Anda mempelajari: set_xlabel()/set_ylabel()/set_title() menambahkan teks deskriptif; FuncFormatter memformat nilai tanda skala sebagai mata uang atau persentase; ax.annotate() menambahkan label teks yang menunjuk untuk menyoroti titik data penting; axhline()/axvline() menggambar garis referensi; dan fig.savefig() dengan dpi serta bbox_inches='tight' menghasilkan ekspor berkualitas publikasi. Kursus Dasar-Dasar Matplotlib ini selesai — selanjutnya adalah Seaborn untuk plot statistik.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Label, Judul, dan Menyimpan Figure” gratis?
Ya — teks lengkap “Label, Judul, dan Menyimpan Figure” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Pandas & NumPy Academy, upgrade ke CoddyKit PRO. Kursus Pandas & NumPy Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Label, Judul, dan Menyimpan Figure”?
Tambahkan label sumbu, judul, legenda, dan format tanda skala, lalu simpan figure berkualitas publikasi dengan savefig(). Kamu berlatih Pandas & NumPy Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Pandas & NumPy Academy?
Tidak diperlukan pengalaman sebelumnya. Pandas & NumPy Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Label, Judul, dan Menyimpan Figure” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Pandas & NumPy Academy ini?
Ya. Setiap pelajaran Pandas & NumPy Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Arsitektur Figure dan Axes
- Plot Garis dan Sebaran
- Diagram Batang dan Histogram
- Label, Judul, dan Menyimpan Figure