matplotlib_savefig_様々な保存方法

【savefig】matplotlibでグラフを保存する方法のバリエーション

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()

実行結果:

matplotlib_savefig_実行結果

上記のコードでは、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')

実行結果:

savefig_画像サイズ変更_実行結果

余白の調整

保存した画像に不要な余白が含まれる場合、bbox_inches='tight'を使用して余白を自動調整できます。

例: 余白を削除して保存

plt.savefig('tight_graph.png', bbox_inches='tight')
savefig_余白を消す

背景色と透明度の設定

デフォルトでは、保存される画像の背景は白色です。facecolortransparentパラメータを使用して、背景色や透明度を変更できます。

例: 背景を透明にして保存

plt.savefig('transparent_graph.png', transparent=True)

例: 背景色を変更して保存

plt.savefig('colored_background_graph.png', facecolor='lightgray')

実行結果:

savefig_背景色の変更

ファイル名に変数を使用

ファイル名に変数を組み込むことで、複数の画像を自動的に保存できます。

例: ループで複数の画像を保存

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_inchesfacecolortransparentでカスタマイズ

これらの方法を活用して、プロジェクトやプレゼンテーションに最適なグラフを作成しましょう。

キーワード: matplotlib, グラフ保存, カスタマイズ, 画像解像度, 背景色, Python

上部へスクロール