Phần 9: Multiplots – Học Matplotib Basic

Trong bài này, ta sẽ tìm hiểu cách tạo nhiều plot trên cùng 1 khung vẽ.
Hàm subplot () trả về đối tượng trục tại 1 vị trí lưới nhất định. Call signature của hàm này là –
plt.subplot(subplot(nrows, ncols, index)
Trong hình hiện giờ, hàm tạo và trả về 1 đối tượng Axes, tại chỉ số vị trí của lưới các nrows theo ncolsaxes. Các index đi từ 1 tới nrows * ncols, tăng dần theo thứ tự hàng-chính. Nếunrows, ncol và chỉ mục đều nhỏ hơn 10. Các chỉ mục cũng sẽ có thể được cung cấp dưới dạng số đơn, nối, thứ tự
Ví dụ: subplot (2, 3, 3) và subplot (233) đều tạo Axes ở góc phía trên cùng bên phải của hình hiện giờ, chiếm 1 nửa chiều cao hình và 1 phần ba chiều rộng hình.
Việc tạo 1 subplot sẽ xóa mọi subplot tồn tại trước đây chồng lên nó ngoài việc chia sẻ ranh giới.
import matplotlib.pyplot as plt
# plot a line, implicitly making a subplot(111)
plt.plot([1,2,3])
# now create a subplot which represents the highest plot of a grid with 2 rows and 1 column.
#Since this subplot will overlap the primary, the plot (and its axes) beforehand
created, will likely be eliminated
plt.subplot(211)
plt.plot(vary(12))
plt.subplot(212, facecolor='y') # creates 2nd subplot with yellow background
plt.plot(vary(12))
Kết quả như dưới đây :
Hàm add_subplot () của lớp determine sẽ không ghi đè lên phần hiện có –
import matplotlib.pyplot as plt
fig = plt.determine()
ax1 = fig.add_subplot(111)
ax1.plot([1,2,3])
ax2 = fig.add_subplot(221, facecolor='y')
ax2.plot([1,2,3])
Khi dòng mã trên được thực thi, nó tạo nên kết quả sau:
Ta có thể thêm 1 plot chèn trong cùng 1 hình bằng việc thêm 1 trục khác trong cùng khung vẽ.
import matplotlib.pyplot as plt
import numpy as np
import math
x = np.arange(0, math.pi*2, 0.05)
fig=plt.determine()
axes1 = fig.add_axes([0.1, 0.1, 0.8, 0.8]) # most important axes
axes2 = fig.add_axes([0.55, 0.55, 0.3, 0.3]) # inset axes
y = np.sin(x)
axes1.plot(x, y, 'b')
axes2.plot(x,np.cos(x),'r')
axes1.set_title('sine')
axes2.set_title("cosine")
plt.present()
Kết quả sau khi thực thi đoạn mã :