Matplotlib - Giao diện hướng đối tượng

Mặc dù có thể dễ dàng nhanh chóng tạo ra các âm mưu với matplotlib.pyplotmô-đun, việc sử dụng phương pháp tiếp cận hướng đối tượng được khuyến khích vì nó cho phép kiểm soát và tùy chỉnh nhiều hơn các lô của bạn. Hầu hết các chức năng cũng có sẵn trongmatplotlib.axes.Axes lớp học.

Ý tưởng chính đằng sau việc sử dụng phương pháp hướng đối tượng chính thức hơn là tạo các đối tượng hình và sau đó chỉ cần gọi các phương thức hoặc thuộc tính của đối tượng đó. Cách tiếp cận này giúp xử lý tốt hơn một canvas có nhiều ô trên đó.

Trong giao diện hướng đối tượng, Pyplot chỉ được sử dụng cho một số chức năng như tạo hình và người dùng tạo và theo dõi rõ ràng các đối tượng hình và trục. Ở cấp độ này, người dùng sử dụng Pyplot để tạo ra các hình và thông qua các hình đó, một hoặc nhiều đối tượng trục có thể được tạo ra. Các đối tượng trục này sau đó được sử dụng cho hầu hết các hành động vẽ.

Để bắt đầu, chúng ta tạo một thể hiện hình cung cấp một canvas trống.

fig = plt.figure()

Bây giờ thêm các trục vào hình. Cácadd_axes()phương thức yêu cầu một đối tượng danh sách gồm 4 phần tử tương ứng với bên trái, phần dưới, chiều rộng và chiều cao của hình. Mỗi số phải từ 0 đến 1 -

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

Đặt nhãn cho trục x và y cũng như tiêu đề -

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

Gọi phương thức plot () của đối tượng trục.

ax.plot(x,y)

Nếu bạn đang sử dụng sổ ghi chép Jupyter, chỉ thị nội tuyến% matplotlib phải được ban hành; hàm otherwistshow () của mô-đun pyplot hiển thị biểu đồ.

Xem xét việc thực thi đoạn mã sau:

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()

Đầu ra

Dòng mã trên tạo ra kết quả sau:

Mã tương tự khi chạy trong sổ ghi chép Jupyter hiển thị kết quả như hình dưới đây: