📌
Matplotlibで作成したグラフをDisplayに表示しないようにする
結論
Aggバックエンドを使用する
Matplotlibには、グラフィカルディスプレイが不要なAggバックエンドというものがあるらしく、このバックエンドを使用すると、エラーを回避できた。
import matplotlib
matplotlib.use('Agg')
きっかけ
下記エラーが出た。
SSH経由でUbuntuに接続しており、Displayを接続していないために起こったと思う。
Traceback (most recent call last):
File "./XXXXXXXXXXXXX.py", line 472, in <module>
fig = plt.figure()
File "/opt/conda/lib/python3.8/site-packages/matplotlib/pyplot.py", line 687, in figure
figManager = new_figure_manager(num, figsize=figsize,
File "/opt/conda/lib/python3.8/site-packages/matplotlib/pyplot.py", line 315, in new_figure_manager
return _backend_mod.new_figure_manager(*args, **kwargs)
File "/opt/conda/lib/python3.8/site-packages/matplotlib/backend_bases.py", line 3494, in new_figure_manager
return cls.new_figure_manager_given_figure(num, fig)
File "/opt/conda/lib/python3.8/site-packages/matplotlib/backends/_backend_tk.py", line 885, in new_figure_manager_given_figure
window = tk.Tk(className="matplotlib")
File "/opt/conda/lib/python3.8/tkinter/__init__.py", line 2261, in __init__
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: couldn't connect to display ":1
Discussion