Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

บันทึกตัวเลขหลายตัวเป็นไฟล์ PDF ไฟล์เดียวใน matplotlib


หากต้องการบันทึกตัวเลขหลายตัวในไฟล์ PDF ไฟล์เดียว เราสามารถทำตามขั้นตอนต่อไปนี้

ขั้นตอน

  • กำหนดขนาดรูปและปรับช่องว่างภายในระหว่างและรอบๆ แผนผังย่อย

  • สร้างร่างใหม่ (fig1) หรือเปิดใช้งานและตัวเลขที่มีอยู่โดยใช้ figure() วิธีการ

  • พล็อตบรรทัดแรกโดยใช้ plot() วิธีการ

  • สร้างอีกร่างหนึ่ง (fig2 ) หรือเปิดใช้งานและตัวเลขที่มีอยู่โดยใช้ figure() วิธีการ

  • พล็อตบรรทัดที่สองโดยใช้ plot() วิธีการ

  • เริ่มต้นตัวแปร ชื่อไฟล์ , เพื่อสร้างไฟล์ pdf.

  • สร้างฟังก์ชันที่ผู้ใช้กำหนด save_multi_image() เพื่อบันทึกภาพหลายภาพเป็นไฟล์ PDF

  • เรียก save_multi_image() ฟังก์ชันที่มีชื่อไฟล์

  • สร้าง PdfPagesใหม่ วัตถุ

  • รับจำนวนเปิดตัวเลข

  • วนซ้ำตัวเลขที่เปิดและบันทึกลงในไฟล์

  • ปิดวัตถุ PDF ที่สร้างขึ้น

ตัวอย่าง

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)

ผลลัพธ์

บันทึกตัวเลขหลายตัวเป็นไฟล์ PDF ไฟล์เดียวใน matplotlib

เมื่อดำเนินการ จะสร้าง PDF "multi.pdf" ใน Project Directory และบันทึกสองภาพต่อไปนี้ในไฟล์นั้น

บันทึกตัวเลขหลายตัวเป็นไฟล์ PDF ไฟล์เดียวใน matplotlib