プロットを Matplotlib に PDF ファイルとして保存する方法

Suraj Joshi 2023年1月30日
  1. プロットを PDF ファイルとして保存するための savefig() メソッド
  2. PdfPages クラスの savefig() メソッド
プロットを Matplotlib に PDF ファイルとして保存する方法

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 avatar Suraj Joshi avatar

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

LinkedIn