Để lưu nhiều figure vào một file PDF cùng lúc trong Matplotlib, bạn có thể thực hiện theo các bước sau:
Các bước thực hiện
- Thiết lập kích thước hình vẽ và điều chỉnh khoảng cách giữa các subplot.
- Tạo figure mới fig1 hoặc kích hoạt figure hiện có bằng figure().
- Vẽ đường thứ nhất bằng plot().
- Tạo figure khác fig2.
- Vẽ đường thứ hai.
- Khởi tạo biến filename cho file PDF.
- Tạo hàm tự định nghĩa save_multi_image() để lưu nhiều hình vào PDF.
- Gọi hàm save_multi_image() với filename.
- Tạo object PdfPages.
- Lấy số lượng figure đang mở.
- Duyệt qua các figure mở và lưu từng figure vào file PDF.
- Đóng object PDF đã tạo.
Ví dụ minh họa
from matplotlib import pyplot as plt
from matplotlib.backends.backend_pdf import PdfPages
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
fig1 = plt.figure()
plt.plot([2, 1, 7, 1, 2], color='red', lw=5)
fig2 = plt.figure()
plt.plot([3, 5, 1, 5, 3], color='green', lw=5)
def save_multi_image(filename):
pp = PdfPages(filename)
fig_nums = plt.get_fignums()
figs = [plt.figure(n) for n in fig_nums]
for fig in figs:
fig.savefig(pp, format='pdf')
pp.close()
filename = "multi.pdf"
save_multi_image(filename)
Kết quả đầu ra
Chương trình tạo file multi.pdf trong thư mục dự án chứa 2 trang, mỗi trang là một figure đã vẽ.