当前位置: 首页 > 知识库问答 >
问题:

用户警告:Matplotlib当前正在使用agg,agg是非GUI后端,因此无法显示图形。在Pycharm上使用pyplot绘制图形时

曾典
2023-03-14

我试图用pyplot绘制一个简单的图,例如:

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

但该图没有出现,我得到以下消息:

UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.

我在几个地方看到,必须使用以下方法更改matplotlib的配置:

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

我这样做了,但随后得到一个错误消息,因为它找不到模块:

ModuleNotFoundError: No module named 'tkinter'

然后,我尝试使用 (在虚拟环境中)安装“tkinter”,但它没有找到它:

Collecting tkinter
  Could not find a version that satisfies the requirement tkinter (from versions: )
No matching distribution found for tkinter

我还应该提到,我正在使用虚拟环境在Pycharm Community Edition IDE上运行所有这些,并且我的操作系统是Linux/Ubuntu18.04。

我想知道为了能够显示图形,我该如何解决这个问题。

共有3个答案

顾乐池
2023-03-14

null

sudo pacman -S tk

一切都会完美的!

霍弘厚
2023-03-14

在我的例子中,错误消息暗示我正在一个无头控制台中工作。因此 无法工作。有效的方法是调用 :

import matplotlib.pyplot as plt

plt.plot([1,2,3], [5,7,4])
plt.savefig("mygraph.png")

我在一个github存储库上找到了答案。

国晟睿
2023-03-14

我找到了解决问题的办法(多亏了ImportanceOfBeingErnest)。

我所要做的就是使用以下命令通过Linux bash终端安装 :

sudo apt-get install python3-tk

null

 类似资料:
  • 我正在尝试使用pyplot绘制一个简单的图形,例如: 但该图并未显示,我收到以下信息: 我在几个地方看到,必须使用以下方法更改matplotlib的配置: 我这样做了,但随后收到一条错误消息,因为它找不到模块: 然后,我尝试使用(在虚拟环境中)安装“tkinter”,但它没有找到它: 我还应该提到的是,我正在使用虚拟环境在Py魅力社区版IDE上运行所有这些,我的操作系统Linux /Ubuntu1

  • 我在 函数上遇到了问题。我在Linux上使用PyCharm,我有一个VirtualEnv。当我在 PyCharm 的内置终端(使用 venv)中执行文件 x.py 时,如下所示 Pythonx.py 一切正常,函数<code>plt。show()渲染并显示绘制的图形。我确实添加了来查看默认使用的后端,结果是GTK3Agg。 当我使用选项运行而不是终端时,问题就开始了。然后我收到一条错误消息 用户警

  • 我正在学习matplotlib,不知道如何保存图形而不在屏幕上打印。 所以我在网上做了一些研究,许多答案说解决方案是matplotlib.use(“Agg”)。而且必须在导入matplotlib.pyplot或pylab之前。 然后,当我在脚本的第一行添加它时,它根本不起作用。 我使用Anaconda Spyder,所以我重新启动了内核并再次运行了脚本,我得到了相同的错误信息。 然后我再次重启内核

  • 问题内容: 有没有办法直接使用字典中的数据来绘制条形图? 我的字典看起来像这样: 我期待 工作,但事实并非如此。 这是错误: 问题答案: 您可以通过首先绘制条形图然后设置适当的刻度来分两行进行: 请注意,倒数第二行应在python3中读取,因为它会返回一个生成器,而matplotlib无法直接使用该生成器。

  • 下面的示例数据不是我正在使用的确切数据,它只是一个具有随机值的数据。 样本数据: 我想创建一个条形图,比较每个区域的x和y列。x和y的条形图应该并排显示。 我使用的代码 下面是我得到的输出。 期望输出: 请建议一些方法来获得所需的输出

  • 我正在为一个特定的实验构建一类绘图工具。我目前有两种绘图方法,一种是使用imshow()的静态绘图,另一种是使用imshow()的“电影”格式。 无论是方法还是任何未来的方法,都要获取与我可能编写的任何特定绘图方法相同的参数。在使用情节类时,我在一个配置对象中拥有所有这些参数。 我不想在每个plot方法中重写代码。我想初始化一个对象(我想是AxeImage),它将设置以下参数:vmin、vmax、