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

Matplotlibの画質を改善する方法|dpi設定と.eps形式で高解像度の図を出力する

Matplotlibで生成した図の画質が粗くて困ったことはありませんか?論文や印刷物に使用する場合は、特に高解像度が求められます。

Matplotlibの画像品質を向上させるには、dpi(dots per inch:1インチあたりのドット数)の値を大きく設定するのが最も効果的です。一般的に600以上、可能であれば1200程度の値を指定すると、鮮明な画像を得られます。また、保存形式としてはPDF形式やEPS形式のようなベクター形式を推奨します。これらの形式は拡大・縮小しても画質が劣化しないため、学術論文や出版用途に最適です。

手順

  • 図のサイズ(figure size)を設定し、サブプロット間および周囲の余白(padding)を調整します。
  • np.arrayを使って2次元のラスタデータを作成します。
  • imshow()メソッドでデータを画像として表示します(2次元の正規ラスタ上に描画)。
  • savefig()メソッドを使用し、dpi=1200かつ.eps形式を指定して現在の画像を保存します。
  • show()メソッドで図を画面に表示します。

コード例

import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
data = np.array(
   [[0.1, 0.7, 0.6, 0.3],
   [0.2, 0.6, 0.5, 0.2],
   [0.8, 0.3, 0.80, 0.01],
   [0.3, 0.4, 0.2, 0.1]]
)
plt.imshow(data, interpolation="nearest", cmap="RdYlGn_r")
plt.savefig("myimage.eps", dpi=1200)
plt.show()

出力結果

上記のコードを実行すると、カラーマップ「RdYlGn_r」で色分けされた4×4のヒートマップが表示され、同時にmyimage.epsというファイル名でdpi=1200の高解像度画像が保存されます。このように保存されたEPSファイルは、ベクター形式のため拡大してもぼやけることなく、印刷品質の高い図として利用できます。

補足:dpiとファイル形式の使い分け

  • PNG形式:Web表示向けの手軽なラスター形式。dpiを上げることで解像度を確保できます。
  • PDF / EPS / SVG形式:ベクター形式のため、dpiに依存せず常に鮮明。論文投稿や印刷に最適です。

用途に応じて適切な形式とdpiを選択することで、Matplotlibの出力画質を大幅に改善できます。

  1. Windows 10の壁紙圧縮を無効にして、デスクトップ画像の画質を向上させる方法

    Windows 10では、壁紙として設定した画像が自動的に圧縮され、元の画質の85%まで落とされてからデスクトップ背景に適用されます。この仕組みはディスク容量の節約やパフォーマンス向上にある程度役立ちますが、その分、画像の品質は犠牲になります。スペックが中程度のPCにとっては有効な機能ですが、十分なRAMを搭載しているシステムであれば、壁紙の自動圧縮を無効化することで、より高画質なデスクトップ背景を楽しめます。ここでは、その具体的な手順を解説します。 Windows 10の壁紙圧縮を無効にする方法 実はWindowsは、フル品質の画像をそのままデスクトップに適用していません。システムパフォーマ

  2. Windows 10の壁紙圧縮を無効にして、デスクトップ画像の画質を向上させる方法

    Windows 10では、壁紙として設定した画像が自動的に圧縮され、元の画質の85%まで落とされてからデスクトップ背景に適用されます。この仕組みはディスク容量の節約やパフォーマンスの向上にある程度役立ちますが、その分、画像の品質は犠牲になります。ミドルスペックのPCでは便利な機能ですが、十分なメモリ(RAM)を搭載しているシステムであれば、壁紙の自動圧縮を無効化してフルクオリティの画像を楽しめます。ここでは、その具体的な手順を解説します。 Windows 10の壁紙圧縮を無効にするには 実は、Windowsはデスクトップにフルクオリティの画像を適用していません。システムパフォーマンスを高めるた