Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Lưu nhiều figure vào một file PDF trong Matplotlib

Để 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ẽ.