Python
 Computer >> コンピューター >  >> プログラミング >> Python

Matplotlibで図をラスター画像としてPDFに保存する方法


Matplotlibで作成した図を、ラスター画像(ビットマップ)としてPDFファイルに保存する方法を解説します。ベクター形式ではなくラスター形式で出力することで、大量のデータを含むプロットでもファイルサイズを大幅に抑えることができます。

保存までの手順

  • 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整する
  • 新しいfigureオブジェクトを作成する(または既存のfigureをアクティブ化する)
  • サブプロット構成の一部として、figureにAxes(軸)を追加する
  • NumPyを使ってランダムなデータを生成する
  • データを2Dラスタ画像として表示する(imshowを使用)
  • プロットをPDF形式で保存する

コード例

import numpy as np
import matplotlib.pyplot as plt

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

fig = plt.figure()
ax = fig.add_subplot(111, rasterized=True)
data = np.random.rand(5, 5)

ax.imshow(data, cmap="copper", aspect=True, interpolation="nearest")

plt.savefig("rasterized.pdf")

コードのポイント

このコードで最も重要なのは fig.add_subplot(111, rasterized=True) の部分です。rasterized=True を指定すると、そのAxes内に描画される内容がベクターではなくビットマップ(ラスター)としてPDFに埋め込まれます。数百万点規模の散布図など、ベクター出力するとファイルが巨大化してしまうケースで特に有効です。

また、plt.rcParams["figure.autolayout"] = True を設定しておくと、ラベルやタイトルが図の領域からはみ出さないようにレイアウトが自動調整されます。さらに savefig() の呼び出し時に dpi 引数を指定すれば、出力されるラスター画像の解像度も細かく制御できます。

実行結果

このコードを実行すると、プロジェクトの作業ディレクトリに「rasterized.pdf」という名前で、以下のようなヒートマップ風の画像が保存されます。

Matplotlibで図をラスター画像としてPDFに保存する方法

  1. Matplotlibで3D軸に点をプロットする方法を解説

    Matplotlibを使って3D空間上に点をプロットするには、以下の手順に従います。 図のサイズを設定し、サブプロット間および周囲のパディング(余白)を調整します。 figure() メソッドを使用して、新しい図を作成するか、既存の図をアクティブ化します。 add_subplot() メソッドに projection=3d を指定して、3D投影のAxesを図に追加します。 scatter() メソッドを使用して、3D座標(x, y, z)の位置に点を描画します。 show() メソッドを使用して、図を画面に表示します。 コード例 from matplotlib import pyplot

  2. MatplotlibでRectangle(長方形)に色を設定する方法

    Matplotlibで長方形(Rectangle)に色を設定するには、以下の手順に従います。手順figure() メソッドを使用して、新しい図(Figure)を作成するか、既存の図をアクティブにします。add_subplot() メソッドを使用して、サブプロット構成の一部として図に ~.axes.Axes を追加します。長方形は、アンカーポイント(基準座標)と幅・高さを指定することで定義できます。作成したRectangleパッチを add_patch() でプロットに追加します。xlim() および ylim() メソッドを使用して、x軸とy軸の表示範囲を設定します。図を表示するには、show