Pythonのデータ可視化ライブラリmatplotlibは、データの可視化を簡単に実現できます。もちろんグラフを保存することもできます。そして、その保存方法のバリエーションは思っている以上に多くあります。本記事では、matplotlibでグラフの保存方法をカスタマイズする方法について、具体的な例を交えて詳しく解説します。
matplotlibでの基本的なグラフ保存方法
まずは、基本的なグラフの保存方法を確認しましょう。
import matplotlib.pyplot as plt
# データの準備
x = [1, 2, 3, 4, 5]
y = [10, 8, 6, 4, 2]
# グラフの描画
plt.plot(x, y)
# グラフの保存
plt.savefig('graph.png')
# グラフの表示
plt.show()
実行結果:

上記のコードでは、plt.savefig('graph.png')
を使用してグラフをPNG形式で保存しています。しかし、このままではデフォルトの設定で保存されるため、品質やサイズなどが適切でない場合があります。
保存形式の種類と選択
matplotlibでは、以下のようなさまざまな形式でグラフを保存できます。
- PNG: ラスター画像形式。ウェブ表示に適しています。
- JPEG: 写真などの保存に適したラスター画像形式。
- PDF: ベクター形式。印刷物や高品質な保存に適しています。
- SVG: スケーラブルなベクター形式。ウェブや印刷物に適しています。
例: PDF形式での保存
plt.savefig('graph.pdf')
例: SVG形式での保存
plt.savefig('graph.svg')
画像の解像度と品質の設定
デフォルトでは、matplotlibは解像度72dpiで画像を保存します。高品質な画像が必要な場合は、dpi
パラメータを使用して解像度を変更できます。
例: 高解像度での保存
plt.savefig('high_res_graph.png', dpi=300)
画像サイズのカスタマイズ
画像のサイズは、figure
オブジェクトのfigsize
パラメータで設定できます。単位はインチです。
例: 画像サイズを8インチ×6インチに設定
plt.figure(figsize=(8, 6))
plt.plot(x, y)
plt.savefig('large_graph.png')
実行結果:

余白の調整
保存した画像に不要な余白が含まれる場合、bbox_inches='tight'
を使用して余白を自動調整できます。
例: 余白を削除して保存
plt.savefig('tight_graph.png', bbox_inches='tight')

背景色と透明度の設定
デフォルトでは、保存される画像の背景は白色です。facecolor
やtransparent
パラメータを使用して、背景色や透明度を変更できます。
例: 背景を透明にして保存
plt.savefig('transparent_graph.png', transparent=True)
例: 背景色を変更して保存
plt.savefig('colored_background_graph.png', facecolor='lightgray')
実行結果:

ファイル名に変数を使用
ファイル名に変数を組み込むことで、複数の画像を自動的に保存できます。
例: ループで複数の画像を保存
for i in range(5):
plt.plot(x, [yi * (i+1) for yi in y])
filename = f'graph_{i+1}.png'
plt.savefig(filename)
plt.clf() # 現在の図をクリア
圧縮と最適化
画像ファイルのサイズを小さくするために、圧縮や最適化を行うことができます。
例: JPEG形式で圧縮率を設定して保存
plt.savefig('compressed_graph.jpg', quality=85)
実践例: 保存設定をカスタマイズしたグラフの保存
以下は、さまざまな保存オプションを組み合わせた実践的な例です。
import matplotlib.pyplot as plt
# データの準備
x = range(0, 10)
y = [xi**2 for xi in x]
# グラフの描画
plt.plot(x, y)
# 図のサイズ設定
plt.figure(figsize=(10, 8))
# 高解像度、透明背景、余白なしで保存
plt.savefig('customized_save_graph.png', dpi=300, transparent=True, bbox_inches='tight')
# グラフの表示
plt.show()
このコードでは、以下の設定を行っています。
- 図のサイズ: 10インチ×8インチ
- 解像度: 300dpi
- 背景: 透明
- 余白: 自動調整で削除
まとめ
matplotlibを使用すると、グラフの保存方法を細かくカスタマイズできます。保存形式、解像度、画像サイズ、背景色、透明度などを適切に設定することで、用途に合わせた最適なグラフを保存できます。
ポイントのまとめ:
- 保存形式の選択: 用途に応じて適切なファイル形式を選ぶ
- 解像度の設定:
dpi
パラメータで高品質な画像を得る - 画像サイズの調整:
figsize
で画像の大きさを指定 - 余白と背景の調整:
bbox_inches
やfacecolor
、transparent
でカスタマイズ
これらの方法を活用して、プロジェクトやプレゼンテーションに最適なグラフを作成しましょう。
キーワード: matplotlib, グラフ保存, カスタマイズ, 画像解像度, 背景色, Python