プロットを Matplotlib に PDF ファイルとして保存する方法
Suraj Joshi
2023年1月30日
Matplotlib から生成されたプロットは、savefig()
メソッドでファイル名の .pdf
拡張子を使用して PDF ファイルとして簡単に保存できます。複数のプロットを単一の PDF ファイルに保存するには、PdfPages
クラスを使用します。
プロットを PDF ファイルとして保存するための savefig()
メソッド
savefig()
メソッドを使用して、プロットを Matplotlib の画像ファイルとして保存できます。
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,
)
パラメータセクションの fname
は、作業ディレクトリを基準にしたファイルの名前とパスを表します。ファイル名の拡張子として .pdf
を使用すると、プロットは PDF ファイルとして保存されます。
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")
生成されたプロットは、ファイル名を Save Plot as PDF file using savefig.pdf
として、現在の作業ディレクトリに保存されます。
PdfPages
クラスの savefig()
メソッド
複数のプロットを 1つにプロットしたい場合は、PdfPages
クラスの savefig()
メソッドを使用できます。
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()
これにより、Matplotlib で生成された 4つの図が、現在の作業ディレクトリにファイル名 Save multiple plots as PDF.pdf
で単一の PDF ファイルに保存されます。
ここでは、各プロットの図を返し、PdfPages
クラスの savefig()
メソッドで個々の図を渡すことにより、すべての図を 1つの PDF ファイルに保存します。
著者: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn