Phương thức add_subplot () có một số chữ ký cuộc gọi:
add_subplot(nrows, ncols, index, **kwargs)
add_subplot(pos, **kwargs)
add_subplot(ax)
add_subplot()
<- kể từ 3.1.0
Gọi 1 và 2:
Các cuộc gọi 1 và 2 đạt được điều tương tự như nhau (tối đa đến giới hạn, được giải thích bên dưới). Hãy nghĩ về chúng như lần đầu tiên chỉ định bố cục lưới với 2 số đầu tiên của chúng (2x2, 1x8, 3x4, v.v.), ví dụ:
f.add_subplot(3,4,1)
# is equivalent to:
f.add_subplot(341)
Cả hai đều tạo ra sự sắp xếp các ô con của (3 x 4 = 12) các ô con trong 3 hàng và 4 cột. Số thứ ba trong mỗi cuộc gọi cho biết đối tượng trục nào sẽ trả về, bắt đầu từ 1 ở trên cùng bên trái, tăng dần sang phải .
Mã này minh họa các hạn chế của việc sử dụng cuộc gọi 2:
#!/usr/bin/env python3
import matplotlib.pyplot as plt
def plot_and_text(axis, text):
'''Simple function to add a straight line
and text to an axis object'''
axis.plot([0,1],[0,1])
axis.text(0.02, 0.9, text)
f = plt.figure()
f2 = plt.figure()
_max = 12
for i in range(_max):
axis = f.add_subplot(3,4,i+1, fc=(0,0,0,i/(_max*2)), xticks=[], yticks=[])
plot_and_text(axis,chr(i+97) + ') ' + '3,4,' +str(i+1))
# If this check isn't in place, a
# ValueError: num must be 1 <= num <= 15, not 0 is raised
if i < 9:
axis = f2.add_subplot(341+i, fc=(0,0,0,i/(_max*2)), xticks=[], yticks=[])
plot_and_text(axis,chr(i+97) + ') ' + str(341+i))
f.tight_layout()
f2.tight_layout()
plt.show()
Bạn có thể thấy với cuộc gọi 1 trên LHS, bạn có thể trả về bất kỳ đối tượng trục nào, tuy nhiên với cuộc gọi 2 trên RHS, bạn chỉ có thể quay lại chỉ mục = 9 kết xuất các biểu đồ con j), k) và l) không thể truy cập bằng cách sử dụng cuộc gọi này.
Tức là nó minh họa điểm này từ tài liệu:
pos là một số nguyên có ba chữ số, trong đó chữ số đầu tiên là số hàng, số thứ hai là số cột và thứ ba là chỉ số của ô phụ. tức là fig.add_subplot (235) giống như fig.add_subplot (2, 3, 5). Lưu ý rằng tất cả các số nguyên phải nhỏ hơn 10 để biểu mẫu này hoạt động .
Gọi 3
Trong các trường hợp hiếm hoi, add_subplot có thể được gọi với một đối số duy nhất, một đối tượng trục con phụ đã được tạo trong hình hiện tại nhưng không có trong danh sách các trục của hình.
Gọi 4 (kể từ 3.1.0):
Nếu không có đối số vị trí nào được thông qua, mặc định là (1, 1, 1).
tức là tái tạo cuộc gọi fig.add_subplot(111)
trong câu hỏi.