matplotlibのプロットをPDFに変換するmatplotlib.backends.backend_pdf。自分の(Linux)コンピュータから実行しても問題なく動作しますが、外部の場所からコンピュータにSSH接続してコードを実行すると、次のエラーメッセージが表示されて失敗します。
File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 343, in figure
**kwargs)
File "/usr/lib/pymodules/python2.7/matplotlib/backends/backend_tkagg.py", line 80, in new_figure_manager
window = Tk.Tk()
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1688, in __init__
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable
それが失敗する私のコード内の行は fig = matplotlib.pyplot.figure(figsize =(11.5,14.8)).
これは試してみることに関係していると思いますプロットを描画するディスプレイを見つけるためですが、私のコードでは実際にそれらを表示しません。 PDFに保存するだけです。コードを正しく実行するためにこの問題を回避する方法はありますか。
回答:
回答№1は2あなたのコードはプロットを表示しないかもしれませんが、それでも表示を必要とするインタラクティブなバックエンドを使用します。
あなたはどちらか ssh -Y user@host
X接続を取得するか、ngurenyagaが提供するリンクの提案に従って、非インタラクティブバックエンドを使用するようにコードを編集します。
matplotlib.use("Agg")