1. グラフを保存する方法
今日はただ美しいグラフを作成するだけではなく、それを素晴らしい画像に変えていくぜ! レポートやプレゼン資料、あるいは「見て!これ作ったんだ!」って自慢したいときのアルバムに使えるようになるよ。 もしかすると、そのグラフがSNSでバズって君の「15分の名声」のチャンスになるかも!?
料理番組みたいに、まずはレシピ(保存形式)を選ぶところから始めよう。保存できるファイル形式にはいくつかの種類があって、それぞれの特徴を理解すれば自分の「メニュー」に合った「料理」を選べるようになる。以下がそのいくつかだよ:
- PNG (Portable Network Graphics): ウェブグラフィックでは一番人気!クオリティを落とさず圧縮できるし、透明性をサポートしていて、多くのアプリで扱えるよ。
- PDF (Portable Document Format): ドキュメントに埋め込むのに最適な形式。ベクタ形式なので、拡大しても画質が保たれる。
- SVG (Scalable Vector Graphics): これもベクタ形式で、ウェブに最適。インタラクティブ性やアニメーションもサポートしている。
- JPEG (Joint Photographic Experts Group): 写真に最適な形式だけど、圧縮があるため、テキストのあるグラフには不向き。
形式が分かったところで、次はMatplotlibのsavefig()関数を使ってグラフを保存してみよう。
savefig()を使ったグラフ保存
MatplotlibはOSのアップデートくらい簡単にグラフを保存できる(うまくいけばね)。やり方を見てみよう。
import matplotlib.pyplot as plt
# 簡単なグラフを作成
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
plt.plot(x, y, label='素数')
plt.xlabel('x')
plt.ylabel('y')
plt.title('素数の折れ線グラフ')
plt.legend()
# グラフをファイルに保存
plt.savefig('primes.png')
このコードを実行すると、現在のディレクトリにprimes.pngというファイルが作成されるよ。それだけ!plt.show()の代わりにplt.savefig('パス/ファイル名')を呼び出すだけでOK!
2. 保存設定のカスタマイズ
ただ保存するだけじゃ満足できない。グラフをもっと「魅力的」にしたいよね!「質が悪いグラフは誰にも見向きされない」って古い格言があるとかないとか。
画像の品質と解像度の設定
高品質の画像を作成したい場合は、dpi(dots per inch)を設定しよう。これで画像のピクセル密度を調整できる。ウェブ用なら72dpi、印刷用なら300dpi以上が適切だよ。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [10, 20, 15, 25, 30]
plt.plot(x, y)
# 高解像度のグラフを保存
plt.savefig("high_quality_plot.png", dpi=300)
plt.show()
この例ではdpi=300を設定して、より細かい画像を作成している。特にレポートや印刷用に便利!
枠線や余白なしで保存
Matplotlibはデフォルトでグラフの周りに余白を追加するけど、レポートに挿入する際に邪魔になることがある。bbox_inches="tight"を使えば余白を削除できるよ。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [5, 10, 15, 20, 25]
plt.plot(x, y)
# 余白なしでグラフを保存
plt.savefig("plot_no_borders.png", bbox_inches="tight")
plt.show()
bbox_inches="tight"を指定すると、グラフ周りの余白がなくなり、コンパクトな画像を得られるよ。
保存前にグラフのサイズを設定
プレゼンやウェブに合わせて特定のサイズで保存したい場合は、figure(figsize=(横, 縦))を使って画像のサイズをインチで指定しよう。
import matplotlib.pyplot as plt
# グラフのサイズを設定
plt.figure(figsize=(10, 5)) # 幅10インチ、高さ5インチ
x = [1, 2, 3, 4, 5]
y = [5, 10, 15, 20, 25]
plt.plot(x, y)
plt.title("指定サイズのグラフ")
# 指定サイズでグラフを保存
plt.savefig("custom_size_plot.png")
plt.show()
この例では10x5インチのグラフが作成される。用途に応じてサイズを調整しよう!
savefig()の追加パラメータ
transparent=True: 背景を透明に保存できる。カラフルな背景や透明な背景で使いたい場合に便利。pad_inches: グラフ周りの余白を追加する。bbox_inchesと一緒に使える。format: ファイル形式を指定: pdf, png, jpg, ...
formatパラメータが指定されていない場合、savefig()はファイル名から形式を推測するよ。
# パラメータを設定してグラフを保存
plt.savefig('primes_high_res', dpi=300, pad_inches='tight', format='png', transparent=True)
このように設定すれば、どんな用途でもクリアで高品質なグラフになる!誰かが見たら「おお、すごい!」って思うはず!
3. 保存例
実際にいくつかの保存例を試してみよう。これを使えば、様々な設定が結果にどう影響するかわかるよ。
PDF形式で保存
グラフをレポートやプレゼン資料に埋め込む場合、PDF形式が最適だよ。ベクタ形式だから拡大しても画質が劣化しない。
plt.savefig('primes.pdf', bbox_inches='tight')
SVG形式で保存
SVGはウェブやアニメーション付きプラグインに最適。インタラクティブな要素も追加可能!
plt.savefig('primes.svg', bbox_inches='tight')
JPEG形式で保存
グラフよりも画像が多い場合、JPEG形式が適しているよ。
plt.savefig('primes.jpg', quality=95)
便利なコツ
- ファイル名: 探しやすく、再利用しやすい名前を付けよう!
- 品質確認: レポートに入れる前に必ずモニターで確認してね。
- 透明背景の利用: プレゼンやウェブサイトで使う場合に便利。
よくある問題
グラフ保存では問題が起こることもあるよ、プリンタドライバを更新するときみたいにね。特にJupyter Notebookみたいなインタラクティブ環境でsavefig()がうまく動かないことがある。この場合、plt.close()で保存後にグラフを閉じるといいよ。
GO TO FULL VERSION