Computer >> Máy Tính >  >> Lập trình >> Python

Lưu tất cả các số liệu Matplotlib đang mở trong một tệp cùng một lúc

Để lưu tất cả các số liệu Matplotlib đang mở trong một tệp cùng một lúc, chúng ta có thể thực hiện các bước sau -

  • Đặt kích thước hình và điều chỉnh phần đệm giữa và xung quanh các ô phụ.
  • Tạo một hình mới (hình 1) hoặc kích hoạt một hình hiện có bằng cách sử dụng figure () phương pháp.
  • Vẽ dòng đầu tiên bằng cách sử dụng plot () phương pháp.
  • Tạo một hình mới (fig2) hoặc kích hoạt một hình hiện có bằng cách sử dụng figure () phương pháp.
  • Vẽ dòng Thứ hai bằng cách sử dụng plot () phương pháp.
  • Khởi tạo một biến, tên tệp , để tạo tệp pdf.
  • Tạo một hàm xác định người dùng, save_multi_image, và gọi nó để lưu tất cả các số liệu matplotlib đang mở trong một tệp cùng một lúc. Tạo PdfPages mới đối tượng, pp.
  • Nhận số lượng các số liệu mở.
  • Lặp lại các số liệu đã mở và lưu chúng vào một tệp.
  • Để hiển thị hình này, hãy sử dụng show () phương pháp.

Ví dụ

from matplotlib import pyplot as plt
from matplotlib.backends.backend_pdf import PdfPages

plt.rcParams["figure.figsize"] = [7.50, 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)

Đầu ra

Khi chúng tôi thực thi mã, mã sẽ lưu hai lô sau dưới dạng tệp PDF (multi.pdf) trong thư mục dự án.

Lưu tất cả các số liệu Matplotlib đang mở trong một tệp cùng một lúc Lưu tất cả các số liệu Matplotlib đang mở trong một tệp cùng một lúc