ホームページ >バックエンド開発 >Python チュートリアル >ディスプレイのないシステムで Matplotlib を使用して PNG 画像を生成するにはどうすればよいですか?
ディスプレイが定義されていない Matplotlib を使用した PNG の生成
グラフィカル ユーザー インターフェイス (GUI) を使用せずに matplotlib を使用する場合、次のようなエラーが発生する場合があります。 「表示名も $DISPLAY 環境変数もありません。」このエラーは、matplotlib がデフォルトで X ベースのバックエンドを使用しようとするために発生します。
グラフィカル インターフェイスのないシステムでこの問題を解決するには、次の手順に従ってください:
ステップ 1: 強制Agg バックエンドを使用する Matplotlib
matplotlib パッケージからコンポーネントをインポートする前に、このコードを含めて強制的に実行しますmatplotlib は、非対話型の「Agg」バックエンドを使用します。
import matplotlib # Force matplotlib to not use any Xwindows backend. matplotlib.use('Agg')
ステップ 2: 潜在的な警告を処理する
matplotlib のバージョンに応じて、バックエンドの選択順序に関する警告が表示される場合があります。このコードが matplotlib モジュールへの他の呼び出しの前に実行されるようにしてください。
代替: .matplotlibrc を編集します
コードでバックエンドを指定する代わりに、matplotlib 構成を変更できます。ユーザーのホームにあるファイル「.matplotlibrc」 directory:
これにより、コードに関係なく matplotlib が常に 'Agg' バックエンドを使用するようになります。
例
次の Python コードを考えてみましょう:
import matplotlib matplotlib.use('Agg') import networkx as nx import matplotlib.pyplot as plt G = nx.Graph() G.add_node(1) G.add_nodes_from([2, 3, 4, 5, 6, 7, 8, 9, 10]) nx.draw(G) plt.savefig("/var/www/node.png")
前に 'matplotlib.use('Agg')' を追加します。 networkx と matplotlib のインポートでは、エラーが解決され、グラフィックなしで PNG 画像を生成できるようになります。インターフェース。
以上がディスプレイのないシステムで Matplotlib を使用して PNG 画像を生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。