Python Academy · Pelajaran

Rajah dan Paksi

Fahami model pemplotan

Pelajaran 1 daripada 413 langkah

Rajah dan Paksi ialah pelajaran Python Academy percuma di CoddyKit. Ini ialah pelajaran 1 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 Python Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Python Academy merangkumi sejumlah 4 pelajaran.

Model Pelukisan

Matplotlib ialah pustaka pelukisan asas untuk Python. Untuk menggunakannya dengan baik, anda perlu memahami model dua peringkatnya: Rajah dan Kawasan Paksi.

Rajah ialah tetingkap atau halaman keseluruhan tempat segala-galanya dilukis. Kawasan Paksi ialah satu graf dalam rajah itu, dengan sistem koordinat x dan y sendiri.

  • Satu rajah boleh mengandungi banyak kawasan paksi
  • Setiap kawasan paksi ialah tempat data sebenarnya berada

Rajah berbanding Kawasan Paksi berbanding Paksi

Tiga istilah mudah dikelirukan:

  • Rajah imej keseluruhan, iaitu bekas
  • Kawasan Paksi satu kawasan pelukisan (perhatikan ejaannya, ia bukan bentuk jamak bagi paksi)
  • Paksi garis nombor paksi-x atau paksi-y di dalam sesuatu kawasan paksi

Jadi, satu rajah mengandungi kawasan paksi dan setiap kawasan paksi mengandungi dua (atau tiga) objek paksi.

Mencipta Rajah dan Kawasan Paksi

Cara yang disyorkan untuk bermula ialah plt.subplots(). Fungsi ini mengembalikan satu rajah dan satu kawasan paksi dalam satu panggilan.

Model ini sendiri mudah difahami walaupun tanpa memaparkannya. Di sini kita mensimulasikan perkara yang diwakili oleh objek tersebut.

fig = {'type': 'Figure', 'axes': []}
ax = {'type': 'Axes', 'parent': 'Figure'}
fig['axes'].append(ax)
print('Figure holds', len(fig['axes']), 'axes')
print('Axes parent is the', ax['parent'])

Antara Muka pyplot

Matplotlib menawarkan dua gaya. Gaya pyplot (berasaskan keadaan) menggunakan plt.plot() dan menjejaki rajah semasa secara automatik. Gaya berorientasikan objek menggunakan ax.plot() secara jelas.

Untuk apa-apa yang lebih daripada lakaran ringkas, utamakan gaya berorientasikan objek. Gaya ini lebih jelas apabila anda mempunyai beberapa kawasan paksi.

Mengapa Berorientasikan Objek Lebih Baik

Apabila anda memanggil plt.title('X'), ia digunakan pada kawasan paksi yang kebetulan sedang aktif. Dengan beberapa subplot, perkara ini menjadi samar.

Dengan ax.set_title('X'), tiada tekaan diperlukan: kaedah itu menyasarkan kawasan paksi yang anda namakan dengan tepat.

Sistem Koordinat

Setiap kawasan paksi memetakan nilai data kepada kedudukan paparan. Koordinat data mewakili maksud nombor anda; kawasan paksi menskalakannya supaya muat dalam kawasan lukisan.

Kita boleh memodelkan pemetaan itu dengan matematik biasa.

data_min, data_max = 0, 100
pixel_min, pixel_max = 0, 400

def to_pixels(value):
    frac = (value - data_min) / (data_max - data_min)
    return pixel_min + frac * (pixel_max - pixel_min)

for v in [0, 25, 50, 100]:
    print('data', v, '->', to_pixels(v), 'px')

Saiz Rajah dan DPI

Sesuatu rajah mempunyai saiz dalam inci dan resolusi dalam titik per inci (DPI). Saiz piksel ialah hasil darab kedua-duanya.

Contohnya, rajah berukuran 6x4 inci pada 100 DPI mempunyai saiz 600x400 piksel.

width_in, height_in = 6, 4
dpi = 100
print('Pixels:', width_in * dpi, 'x', height_in * dpi)

Menambah Kawasan Paksi Secara Manual

Selain plt.subplots(), anda boleh menambahkan kawasan paksi pada segi empat tepat yang tepat dengan fig.add_axes([left, bottom, width, height]), dengan setiap nilai merupakan pecahan rajah antara 0 hingga 1.

Begitulah graf sisipan dan susun atur tersuai dibina.

Rajah Semasa

Pyplot mengekalkan daftar rajah dan penunjuk kepada rajah semasa. plt.gcf() mendapatkan rajah semasa dan plt.gca() mendapatkan kawasan paksi semasa.

Fungsi ini wujud terutamanya untuk menyokong gaya berasaskan keadaan. Dalam kod berorientasikan objek, anda menyimpan rujukan sendiri.

Memaparkan dan Menutup

plt.show() memaparkan semua rajah yang terbuka dalam satu tetingkap. plt.close() membebaskan satu rajah. Dalam skrip yang menghasilkan banyak rajah, menutupnya menghalang penggunaan memori daripada terus meningkat.

Dalam buku nota, rajah dipaparkan sebaris secara automatik.

Senarai Semak dalam Fikiran

Sebelum melukis apa-apa, tanyakan:

  • Berapa banyak rajah yang saya perlukan?
  • Berapa banyak kawasan graf bagi setiap rajah?
  • Setiap bahagian data tergolong dalam kawasan graf yang mana?

Menjawab soalan ini dahulu menjadikan antara muka pengaturcaraan aplikasi berorientasikan objek terasa lebih semula jadi.

Semakan Pantas

Uji pemahaman anda tentang model rajah dan kawasan graf.

Ringkasan

Anda telah mempelajari model teras Matplotlib:

  • Rajah ialah bekas yang saiznya dalam inci didarab dengan DPI
  • Kawasan Graf ialah graf individu dengan koordinatnya sendiri
  • Paksi ialah garis nombor x atau y
  • Utamakan gaya berorientasikan objek dengan fig, ax = plt.subplots()

Dengan model mental ini, setiap penyesuaian seterusnya menjadi mudah dijangka.

Percuma untuk bermula

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
76
Pelajaran
320

Soalan Lazim

Adakah pelajaran “Rajah dan Paksi” percuma?

Ya — teks penuh “Rajah dan Paksi” 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 Python Academy, tingkat taraf kepada CoddyKit PRO. Kursus Python Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Rajah dan Paksi”?

Fahami model pemplotan Anda berlatih Python 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 Python Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Python 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 1 daripada 4.

Berapa lamakah pelajaran “Rajah dan Paksi” 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 Python Academy ini?

Ya. Setiap pelajaran Python 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

  1. Rajah dan Paksi
  2. Plot Garis, Bar dan Serakan
  3. Menyesuaikan Plot
  4. Subplot dan Susun Atur
← Kembali ke Python Academy