【问题标题】:Why am I getting UserWarning: Matplotlib is currently using ps, which is a non-GUI backend, so cannot show the figure为什么我收到 UserWarning:Matplotlib 当前正在使用 ps,这是一个非 GUI 后端,所以无法显示该图
【发布时间】:2019-06-16 08:10:01
【问题描述】:

这不在jupyter 笔记本中,所以这不是duplicate of this question,但我的代码是:

from gluoncv import model_zoo, data, utils
from matplotlib import pyplot as plt

...
plt.show()

我得到的错误是:

/figure.py:445: UserWarning: Matplotlib is currently using ps, which is a non-GUI backend, so cannot show the figure.
  % get_backend())

我在https://repl.it/@shamoons/WelloffHarmfulMineral创建了一个repl

如果重要的话,我使用的是 OS X。我需要做什么才能显示图像?

【问题讨论】:

  • PS 后端用于创建 PostScript 文件,而不是显示图形。该警告是 matplotlib 告诉您,您对 plt.show() 的调用不会做您认为它会做的事情。

标签: python matplotlib


【解决方案1】:

你可以使用

matplotlib.use("TkAgg")

而不是

matplotlib.use("PS")

在 MacOS 上开发时。

请注意,导入前应在导入plt之前,像这样:

import matplotlib
matplotlib.use('TkAgg')
from matplotlib import pyplot as plt

【讨论】:

    【解决方案2】:

    matplotlib.use('PS')plt.show() 是互斥的。你需要决定:

    • 要在屏幕上显示图形吗?解决方法:去掉matplotlib.use('PS')这一行。
    • 您想使用PS 后端吗?这似乎不太可能,因为除非在服务器上工作,否则很少有理由将后端设置为非交互式。无论如何,解决方案:将plt.show() 替换为plt.savefig("filname.ps")

    【讨论】:

    • 我修改了代码并删除了matplotlib.use('PS')。我遇到了同样的错误
    • 可能是因为您在进行该更改后没有重新启动内核。
    • 我没有运行笔记本。这是Python 在我的mac 上运行,那么我将如何重新启动内核?
    • 好的,你是怎么运行这个的?你能创建一个minimal reproducible example 吗?什么是 gluoncv?
    • 我在repl.it/@shamoons/WelloffHarmfulMineral 创建了一个repl,但是我在Mac OS X 上运行
    猜你喜欢
    • 2020-01-08
    • 2019-08-21
    • 2020-06-28
    • 2022-11-10
    • 2019-11-01
    • 2022-12-01
    • 1970-01-01
    • 2016-09-18
    • 2014-09-19
    相关资源
    最近更新 更多