由于_tkinter.TclError,无法使用pyplot:未知的颜色名称

时间:2018-11-24 14:34:47

标签: python python-3.x matplotlib

我有一个简单的代码:

from matplotlib import pyplot as plt
plt.plot([1,2,5])
plt.show()

它在jupyter笔记本电脑中工作正常,但是当我尝试使用命令行运行它时:

$ python3 main.py

它抛出一个错误:

_tkinter.TclError: unknown color name "[97]#282a36"

整个引用:

Traceback (most recent call last):
  File "main.py", line 2, in <module>
    plt.plot([1,2,5])
  File "/home/user/.local/lib/python3.6/site-packages/matplotlib/pyplot.py", line 2811, in plot
    return gca().plot(
  File "/home/user/.local/lib/python3.6/site-packages/matplotlib/pyplot.py", line 935, in gca
    return gcf().gca(**kwargs)
  File "/home/user/.local/lib/python3.6/site-packages/matplotlib/pyplot.py", line 578, in gcf
    return figure()
  File "/home/user/.local/lib/python3.6/site-packages/matplotlib/pyplot.py", line 525, in figure
    **kwargs)
  File "/home/user/.local/lib/python3.6/site-packages/matplotlib/backend_bases.py", line 3218, in new_figure_manager
    return cls.new_figure_manager_given_figure(num, fig)
  File "/home/user/.local/lib/python3.6/site-packages/matplotlib/backends/_backend_tk.py", line 1008, in new_figure_manager_given_figure
    window = Tk.Tk(className="matplotlib")
  File "/usr/lib/python3.6/tkinter/__init__.py", line 2023, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: unknown color name "[97]#282a36"

我已经尝试过更改matplotlib的后端:

import matplotlib
matplotlib.use('pdf') # Or using other arguments matplotlib.use('Agg')
import matplotlib.pyplot as plt
plt.plot([1,2,5])
plt.show()

它给了我同样的错误信息。

我还尝试使用matplotlib和分发程序包管理器安装pip,两者都给我同样的错误。

tkinter已从我的分发存储库安装。

任何建议都是有帮助的,对于类似的问题,我找不到任何解决方案。

1 个答案:

答案 0 :(得分:1)

在阅读matplotlib的Github页面上的this问题后,我清空了.Xresources并解决了问题。

所以我在.Xresources文件中看了一些,然后发现了一行:

*background:   [97]#282a36

matplotlib抱怨一种名为[97]#282a36的颜色的原因:

_tkinter.TclError: unknown color name "[97]#282a36"

从行中删除[97]可以解决此问题。请记住,您必须运行:

xrdb -merge .Xresources

要进行更改。