Label, Tajuk dan Menyimpan Figure
Tambah label paksi, tajuk, petunjuk dan pemformatan tanda senggat, kemudian simpan figure berkualiti penerbitan dengan savefig().
Label, Tajuk dan Menyimpan Figure ialah pelajaran Pandas & NumPy Academy percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Pandas & NumPy Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Pandas & NumPy Academy merangkumi sejumlah 4 pelajaran.
Daripada Plot kepada Penerbitan
Sesuatu carta hanya berkesan jika paksinya berlabel, tajuknya menerangkan kesimpulan utama, dan carta itu disimpan pada resolusi yang cukup tinggi untuk medium yang dimaksudkan. Pelajaran ini merangkumi sentuhan akhir yang mengubah plot penerokaan ringkas menjadi rajah kemas yang sesuai untuk laporan, papan pemuka atau penerbitan akademik: label paksi, pemformatan tanda senggatan, tajuk, petunjuk, anotasi dan eksport fail.
Label Paksi dengan set_xlabel dan set_ylabel
Tetapkan label paksi yang deskriptif dengan ax.set_xlabel() dan ax.set_ylabel(). Sentiasa sertakan unit dalam label (contohnya, 'Revenue (USD)' dan bukannya hanya 'Revenue'). Gunakan fontsize untuk membesarkan label bagi pembentangan, dan labelpad untuk menambahkan ruang antara paksi dengan teks label apabila tanda senggatan adalah 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()Tajuk dengan set_title dan suptitle
ax.set_title() menetapkan tajuk di atas satu Axes. Untuk rajah berbilang panel, fig.suptitle() menambahkan tajuk dikongsi di atas semua subplot. Kawal saiz fon dengan fontsize dan kedudukan menegak dengan y (lalai 1.0). Tajuk yang baik menyatakan dapatan utama carta, bukan sekadar perkara yang diwakili oleh paksi — 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()Mengawal Label Tanda Senggatan
Label tanda senggatan lalai Matplotlib selalunya memadai, tetapi kadangkala anda memerlukan label tersuai. Gunakan ax.set_xticks() untuk menentukan kedudukan tanda senggatan dan ax.set_xticklabels() untuk menetapkan labelnya. Hantar rotation=45 untuk mencondongkan label yang panjang supaya tidak bertindih. Parameter ha='right' (penjajaran mendatar) memastikan label yang diputar berlabuh dengan betul pada tanda senggatan masing-masing.
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 Senggatan
Gunakan pemformat matplotlib.ticker untuk memaparkan nilai tanda senggatan dalam format yang mudah difahami. FuncFormatter menerima fungsi yang mendapatkan nilai tanda senggatan dan mengembalikan rentetan yang telah diformatkan. Corak biasa termasuk pemisah ribu, simbol mata wang, tanda peratus dan tatatanda saintifik. Gunakan 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()Petunjuk dengan ax.legend()
Panggil ax.legend() untuk memaparkan petunjuk bagi semua unsur plot yang mempunyai parameter label. Sesuaikan dengan loc (kedudukan, contohnya 'upper right', 'lower left'), ncol (bilangan lajur), framealpha (ketelusan kotak) dan fontsize. Meletakkan petunjuk di luar kawasan plot menggunakan bbox_to_anchor bersama-sama 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 anak panah pilihan yang menunjuk kepada titik data tertentu. Gunakan ini untuk menyerlahkan nilai maksimum, anomali atau peristiwa penting pada carta. Kamus arrowprops mengawal gaya anak panah: arrowstyle='->' ialah anak panah ringkas.
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 Rujukan Mendatar dan Menegak
ax.axhline(y_value) melukis garis mendatar merentasi keseluruhan lebar Axes pada nilai-y yang ditentukan. ax.axvline(x_value) melukis garis menegak. Kedua-duanya menerima parameter color, linestyle dan linewidth. Garis rujukan biasanya digunakan untuk menandakan sasaran, ambang atau tarikh peristiwa pada carta siri masa.
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()Menggayakan dengan Tema
Matplotlib menyertakan beberapa helaian gaya terbina dalam yang mengubah rupa keseluruhan semua rajah tanpa perubahan kod: 'seaborn-v0_8-whitegrid', 'fivethirtyeight', 'ggplot', 'bmh' dan lain-lain. Gunakan gaya dengan plt.style.use('style_name') pada permulaan skrip anda. Gunakan plt.style.context('style_name') sebagai pengurus konteks untuk menerapkan gaya hanya dalam satu 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 Rajah dengan savefig()
fig.savefig('filename.png') menyimpan rajah ke dalam fail. Parameter utama: dpi (titik per inci — gunakan 150 untuk skrin, 300 untuk cetakan), bbox_inches='tight' (menghalang label daripada terpotong) dan format (ditentukan daripada sambungan atau dinyatakan secara jelas). Format biasa: '.png' (raster, sesuai untuk web), '.pdf' (vektor, sesuai untuk cetakan) dan '.svg' (vektor, boleh disunting dalam 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: Carta Laporan yang Kemas
Berikut ialah aliran kerja lengkap yang menggabungkan semua teknik dalam pelajaran ini: carta siri masa yang kemas dengan label paksi, tanda senggatan paksi-y yang diformatkan, garis sasaran mendatar, anotasi pada puncak dan eksport kepada PNG beresolusi tinggi. Inilah corak yang akan anda gunakan untuk mana-mana carta yang dimasukkan ke dalam laporan atau papan pemuka.
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()Semakan Pantas
Uji pemahaman anda tentang label, tajuk dan penyimpanan rajah daripada pelajaran ini.
Imbas Kembali Pelajaran
Dalam pelajaran ini, anda mempelajari bahawa set_xlabel()/set_ylabel()/set_title() menambahkan teks deskriptif; FuncFormatter memformatkan nilai tanda senggatan sebagai mata wang atau peratus; ax.annotate() menambahkan label teks berpenunjuk untuk menyerlahkan titik data utama; axhline()/axvline() melukis garis rujukan; dan fig.savefig() dengan dpi serta bbox_inches='tight' menghasilkan eksport berkualiti penerbitan. Kursus Asas Matplotlib ini kini selesai — seterusnya ialah Seaborn untuk plot statistik.
Pelajari Python dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 30
- Pelajaran
- 120
Soalan Lazim
Adakah pelajaran “Label, Tajuk dan Menyimpan Figure” percuma?
Ya — teks penuh “Label, Tajuk dan Menyimpan Figure” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Pandas & NumPy Academy, tingkat taraf kepada CoddyKit PRO. Kursus Pandas & NumPy Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Label, Tajuk dan Menyimpan Figure”?
Tambah label paksi, tajuk, petunjuk dan pemformatan tanda senggat, kemudian simpan figure berkualiti penerbitan dengan savefig(). Anda berlatih Pandas & NumPy Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Pandas & NumPy Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Pandas & NumPy Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.
Berapa lamakah pelajaran “Label, Tajuk dan Menyimpan Figure” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Pandas & NumPy Academy ini?
Ya. Setiap pelajaran Pandas & NumPy Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Seni Bina Figure dan Axes
- Plot Garis dan Serakan
- Carta Bar dan Histogram
- Label, Tajuk dan Menyimpan Figure