2025-05-28

【備忘録】Matplotlib で保存するプロットのデフォルト名

Matplotlib は、Python と NumPy のためのプロットライブラリです。Tkinter、wxPython、Qt、GTK のような汎用 GUI ツールキットを使ったアプリケーションにプロットを埋め込むためのオブジェクト指向 API を提供しています。

Wikipedia より引用、翻訳

JupyterLab 上では、Matplotlib でプロットしたチャートを保存するには、plt.savefig(filename) を使うのですが、そうでないときは、以下のようにチャート (figure) の下にナビゲータバーが表示されているので、右端のフロッピーディスクを模した保存用ボタンをクリックして画像として保存します。

保存用のダイアログに表示されたデフォルトのファイル名は Figure_1 になっています。

このデフォルトのファイル名を変更したい

些細なことのようですが、このデフォルトのファイル名 Figure_1 を変えられないかどうか調べたところ、Stack Overflow [1] に該当するやりとりを見つけました。保存するファイルのデフォルトのファイル名を変更するサンプルを紹介します。

下記の OS 環境で動作確認をしています。

Fedora Linux 42 Workstation x86_64
Python 3.13.3
matplotlib 3.10.3
numpy 2.2.6

サンプル・コードを以下の通りです。

sample_mpl_save.py
# This is based on the following sample:
# https://matplotlib.org/stable/users/getting_started/
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 2 * np.pi, 200)
y = np.sin(x)

fig, ax = plt.subplots()
ax.plot(x, y)

# デフォルトのファイル名を Untitled に設定
c = fig.canvas
ext = c.get_default_filetype()
c.get_default_filename = lambda: f"Untitled.{ext}"

plt.show()

一手間加えるだけで、デフォルトのファイル名を Figure_1 から Untitled へ変更できました。

ちなみに、PySide6 に Matplotlib のチャートを埋め込んで Matplotlib のナビゲーションツールバー (NavigationToolbar2QT) を利用してチャートを画像形式で保存する時には、デフォルトのファイル名が image.png になります。さすがに GUI アプリではデフォルトの保存ファイル名を自由に設定したいので、同じような考え方でファイル名を変更しています。

参考サイト

  1. python - How to change default filename from Matplotlib NavigationToolbar in a PyQt5 application? - Stack Overflow [2017-01-16]

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース



このエントリーをはてなブックマークに追加

0 件のコメント: