Wie man Plots als PDF-Datei in Matplotlib speichert

Suraj Joshi 18 Juli 2021
  1. savefig() Methode zum Speichern von Plots als PDF-Datei
  2. savefig() Methode der Klasse PdfPages
Wie man Plots als PDF-Datei in Matplotlib speichert

Die von Matplotlib erzeugten Plots können einfach als PDF-Datei gespeichert werden, indem man die Erweiterung .pdf des Dateinamens in der savefig() Methode verwendet. Um mehrere Plots in einer einzigen PDF-Datei zu speichern, verwenden wir die Klasse PdfPages.

savefig() Methode zum Speichern von Plots als PDF-Datei

Wir können einen Plot einfach mit der Methode savefig() als Bilddatei in Matplotlib speichern.

Syntax für die Methode savefig():

matplotlib.pyplot.savefig(
    fname,
    dpi=None,
    facecolor="w",
    edgecolor="w",
    orientation="portrait",
    papertype=None,
    format=None,
    transparent=False,
    bbox_inches=None,
    pad_inches=0.1,
    frameon=None,
    metadata=None,
)

Der fname in der Parameter-Sektion stellt den Namen und Pfad der Datei relativ zum Arbeitsverzeichnis dar. Wenn wir .pdf als Erweiterung des Dateinamens verwenden, wird der Plot als PDF-Datei gespeichert.

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 5, 50)
y = np.cos(2 * np.pi * x)

plt.scatter(x, y)
plt.plot(x, y)
plt.title("Plot of cosx")
plt.xlabel("x")
plt.ylabel("cosx")
plt.show()
plt.savefig("Save Plot as PDF file using savefig.pdf")

Dadurch wird der erzeugte Plot mit dem Dateinamen Save Plot as PDF file using savefig.pdf im aktuellen Arbeitsverzeichnis gespeichert.

savefig() Methode der Klasse PdfPages

Wenn wir mehrere Plots in einem einzigen Plot darstellen möchten, können wir die Methode savefig() der Klasse PdfPages verwenden.

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


x = np.linspace(-3, 3, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = 1 / (1 + np.exp(-x))
y4 = np.exp(x)


def retFig(x, y):
    fig = plt.figure()
    a = plt.plot(x, y)
    return fig


fig1 = retFig(x, y1)
fig2 = retFig(x, y2)
fig3 = retFig(x, y3)
fig4 = retFig(x, y4)

pp = PdfPages("Save multiple plots as PDF.pdf")
pp.savefig(fig1)
pp.savefig(fig2)
pp.savefig(fig3)
pp.savefig(fig4)
pp.close()

Dies speichert 4 generierte Figuren in Matplotlib in einer einzigen PDF-Datei mit dem Dateinamen Save multiple plots as PDF.pdf im aktuellen Arbeitsverzeichnis.

Hier geben wir für jeden Plot Zahlen zurück und speichern dann alle Zahlen in einer einzigen PDF-Datei, indem wir einzelne Zahlen in der Methode savefig() der Klasse PdfPages übergeben.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn