matplotlib.pyplotのimshow()とsavefig()を使ってフル解像度でプロット・画像保存する方法
matplotlib.pyplotのimshow()とsavefig()を使用してフル解像度でプロットし、高画質な画像として保存するには、dpi(解像度)の値を600〜1200程度に設定します。dpi値が大きいほど、出力される画像はより精細になります。
実装の手順
- 図のサイズを設定し、
figure.autolayoutを有効にしてサブプロット間および周囲の余白を自動調整します。 - NumPyを使って、指定した形状のランダムな値を持つデータを生成します。
- imshow()メソッドでデータを2Dラスタ画像として表示します。カラーマップは好みに応じて指定できます。
- savefig()メソッドで、dpi=1200を指定して図をファイルに保存します。
- 画面に図を表示するには、show()メソッドを使用します。
サンプルコード
from matplotlib import pyplot as plt
import numpy as np
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
data = np.random.rand(5, 5)
plt.imshow(data, cmap="plasma")
plt.savefig("myimage.eps", dpi=1200)
plt.show()
コードの解説
このコードでは、まずrcParamsを使って図のサイズを7.50×3.50インチに設定し、レイアウトの自動調整を有効にしています。次に、5×5のランダムな数値データを生成し、cmap="plasma"でカラーマップを指定してヒートマップ形式で可視化しています。
ポイントとなるのはplt.savefig("myimage.eps", dpi=1200)の部分です。ここではEPS形式で保存しつつ、dpi=1200という高い解像度を指定することで、印刷品質のフル解像度画像を得られます。dpi値は用途に応じて600〜1200の範囲で調整するとよいでしょう。なお、savefig()はshow()を呼び出す前に実行する必要がある点に注意してください。show()を実行した後では、図がクリアされてしまい、正しく保存できない場合があります。
出力結果

上記のコードを実行すると、plasmaカラーマップで色付けされた5×5のランダムデータのヒートマップが表示され、同時に「myimage.eps」という名前で1200dpiの高解像度画像ファイルが保存されます。
-
matplotlib.pyplotでテーブルのフォントサイズを変更する方法
matplotlibで作成したテーブルのフォントサイズを変更するには、set_fontsize()メソッドを使用します。ポイントは、その前にauto_set_font_size(False)を呼び出して自動調整機能を無効化することです。これにより、指定したフォントサイズが確実に反映されます。 手順 図(figure)とサブプロットを作成します(nrows=1、ncols=1)。 numpyを使ってランダムなデータを生成します。 列名(columns)を定義します。 軸をtightに設定し、表示をoffにします。 フォントサイズを変更するための変数を初期化します。 auto_set_font_
-
Matplotlibの図に凡例を配置・整列させる方法
Matplotlibで作成した図(フィギュア)に凡例を適切な位置に配置し、要素を整列させる方法を解説します。凡例の位置調整には bbox_to_anchor 引数を使用するのがポイントです。 手順 plot() メソッドを使って line1 と line2 の2本の線をプロットします。 legend() メソッドで図に凡例を配置します。このとき bbox_to_anchor を使って凡例の位置を指定し、ncol 引数で凡例要素を横並びに整列させます。 show() メソッドを呼び出して図を表示します。 コード例 from matplotlib import pyplot as plt pl