Matplotlib - Antarmuka Berorientasi Objek

Meskipun mudah untuk membuat plot dengan cepat menggunakan file matplotlib.pyplotmodul, penggunaan pendekatan berorientasi objek direkomendasikan karena memberikan lebih banyak kontrol dan penyesuaian plot Anda. Sebagian besar fungsi juga tersedia di filematplotlib.axes.Axes kelas.

Ide utama di balik penggunaan metode berorientasi objek yang lebih formal adalah membuat objek figur dan kemudian memanggil metode atau atribut dari objek itu. Pendekatan ini membantu lebih baik dalam menangani kanvas yang memiliki banyak plot di atasnya.

Dalam antarmuka berorientasi objek, Pyplot hanya digunakan untuk beberapa fungsi seperti pembuatan gambar, dan pengguna secara eksplisit membuat dan melacak objek gambar dan sumbu. Pada level ini, pengguna menggunakan Pyplot untuk membuat gambar, dan melalui gambar tersebut, satu atau lebih objek sumbu dapat dibuat. Objek sumbu ini kemudian digunakan untuk sebagian besar tindakan merencanakan.

Untuk memulainya, kami membuat instance figur yang menyediakan kanvas kosong.

fig = plt.figure()

Sekarang tambahkan sumbu ke gambar. Ituadd_axes()Metode membutuhkan objek daftar dari 4 elemen yang sesuai dengan kiri, bawah, lebar dan tinggi gambar. Setiap angka harus antara 0 dan 1 -

ax=fig.add_axes([0,0,1,1])

Tetapkan label untuk sumbu x dan y serta judul -

ax.set_title("sine wave")
ax.set_xlabel('angle')
ax.set_ylabel('sine')

Panggil metode plot () dari objek sumbu.

ax.plot(x,y)

Jika Anda menggunakan notebook Jupyter, perintah inline% matplotlib harus dikeluarkan; fungsi otherwistshow () dari modul pyplot menampilkan plot.

Pertimbangkan untuk menjalankan kode berikut -

from matplotlib import pyplot as plt
import numpy as np
import math
x = np.arange(0, math.pi*2, 0.05)
y = np.sin(x)
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.plot(x,y)
ax.set_title("sine wave")
ax.set_xlabel('angle')
ax.set_ylabel('sine')
plt.show()

Keluaran

Baris kode di atas menghasilkan output berikut -

Kode yang sama saat dijalankan di notebook Jupyter menunjukkan output seperti yang ditunjukkan di bawah ini -