1. 程式人生 > >Linux命令列使用matplotlib,報錯_tkinter.TclError: no display name and no $DISPLAY environment variable問題解決

Linux命令列使用matplotlib,報錯_tkinter.TclError: no display name and no $DISPLAY environment variable問題解決

問題

我在Linux命令列使用Python的matplotlib,報錯

 File "/usr/lib/python3/dist-packages/matplotlib/pyplot.py", line 1466, in title
    return gca().set_title(s, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/matplotlib/pyplot.py", line 950, in gca
    return gcf().gca(**kwargs)
  File "/usr/lib/python3/dist-packages/matplotlib/pyplot.py"
, line 586, in gcf return figure() File "/usr/lib/python3/dist-packages/matplotlib/pyplot.py", line 535, in figure **kwargs) File "/usr/lib/python3/dist-packages/matplotlib/backends/backend_tkagg.py", line 81, in new_figure_manager return new_figure_manager_given_figure(num, figure) File "/usr/lib/python3/dist-packages/matplotlib/backends/backend_tkagg.py"
, line 89, in new_figure_manager_given_figure window = Tk.Tk() File "/usr/lib/python3.5/tkinter/__init__.py", line 1880, in __init__ self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use) _tkinter.TclError: no display name and no $DISPLAY environment variable

解決

我看一了下問題,原因是命令列不能畫圖,而matplotlib預設選擇Xwindows 作為後端,設定一下即可,注意要在匯入pyplot 前就設定好
錯誤的設定

import matplotlib.pyplot as plt
import matplotlib
matplotlib.use('Agg')

正確的設定

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt