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

DISPLAYなしでpyplotを使う方法|savefig()でグラフを画像として保存する

ディスプレイ(GUI)が利用できないサーバーやSSH接続先などの環境でも、matplotlibのpyplotを使ってグラフを作成することは可能です。画面に表示する代わりに、savefig()メソッドで現在の図をローカルマシン上の画像ファイルとして保存すれば、後から自由に確認できます。

手順

  • 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
  • numpyを使ってxデータポイントを作成します。
  • plot()メソッドでxyのデータポイントをプロットします。
  • savefig()メソッドで図をファイルに保存します。

コード例

import numpy as np
import matplotlib.pyplot as plt

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

x = np.linspace(-np.pi, np.pi, 100)

plt.plot(x, np.sin(x) * x, c='red')

plt.savefig("myimage.png")

出力結果

コードを実行すると、以下の画像が「myimage.png」という名前でプロジェクトディレクトリに保存されます。

DISPLAYなしでpyplotを使う方法|savefig()でグラフを画像として保存する

補足:ヘッドレス環境でのバックエンド指定

ディスプレイが存在しない環境では、matplotlibは自動的に非対話型のバックエンド(Aggなど)を選択します。万が一エラーが発生する場合は、スクリプトの先頭で明示的にバックエンドを指定しておくと確実です。

import matplotlib
matplotlib.use("Agg")

この設定により、GUI表示を行わずに図の描画と保存だけを実行できるため、クラウドサーバーやDockerコンテナといったヘッドレス環境でも安心してpyplotを活用できます。

  1. Matplotlib PyplotでフィギュアのAxes(軸)リストを取得する方法

    MatplotlibのPyplotを使ってフィギュアに含まれるAxes(軸)のリストを取得するには、まずフィギュアを作成し、その後get_axes()メソッドを呼び出すことで、フィギュア内のすべてのAxesオブジェクトを取得できます。取得したAxesに対して、ラベルの設定などの操作を行うことが可能です。手順NumPyを使ってデータ点 xs と ys を作成し、figure()メソッドで新しいフィギュア(または既存のフィギュア)を生成します。add_subplot()メソッドを使用して、サブプロット配置の一部としてフィギュアにAxesオブジェクトを追加します。ここでは nrows=1、ncols

  2. Apple IDなしでiPhoneを使う方法|初期設定をスキップする手順を徹底解説

    新しいiPhone(その他のAppleデバイスも同様)を初めてセットアップするとき、Apple IDの作成を求められます。Apple IDは、iCloudによるバックアップ、App Storeでのアプリ入手、デバイス間でのデータ共有などに利用される共通アカウントです。非常に便利な仕組みではありますが、Appleに自分の情報を渡したくないと考えるユーザーも少なくありません。幸い、Apple IDの作成は必須ではありません。この記事では、Apple IDを作成せずにiPhoneをセットアップする方法をわかりやすくご紹介します。iPhoneの初期設定手順新しく購入したiPhone、あるいは工場出荷状