【问题标题】:matplotlib using non-GUI backend even though tkinter is installed and imported即使安装和导入了 tkinter,matplotlib 也使用非 GUI 后端
【发布时间】:2022-11-06 23:19:07
【问题描述】:

我在 VS Code 中使用 Jupyter 笔记本扩展。我正在使用 Camelot 从 pdf 中提取表格,并且正在尝试进行一些可视化调试以查找列分隔符的坐标。

运行时:

camelot.plot(tables[1], kind='text').show()

我收到警告: “用户警告:Matplotlib 当前使用的是 module://matplotlib_inline.backend_inline,这是一个非 GUI 后端,因此无法显示该图。”

https://pythonguides.com/matplotlib-is-currently-using-agg-a-non-gui-backend/ 我了解到问题是我没有 GUI 后端。该网站建议使用 tkinter 作为 GUI 后端。 所以我做了pip install tk 将 tkinter 安装到我的虚拟环境中。然后将导入添加到我的代码中:from tkinter import *

关闭项目文件夹,退出 VS Code 并重新启动后,当我运行时

camelot.plot(tables[1], kind='text').show()

我得到同样的警告: “用户警告:Matplotlib 当前使用的是 module://matplotlib_inline.backend_inline,这是一个非 GUI 后端,因此无法显示该图。”

如何按照 matplotlib 的方式设置 GUI 后端?

【问题讨论】:

标签: matplotlib tkinter jupyter-notebook


【解决方案1】:

似乎有各种解决方案,其中一些已过时。我发现在这篇文章(2022 年)有效的解决方案是

  1. 将 ipympl 安装到环境中(因为我的虚拟环境中已经安装了 jupyter notebook,所以 ipympl 的所有要求都已经存在,唯一需要安装的包是“ipympl”本身。
  2. 添加以下代码(在 import 语句之后):%matplotlib widget

    而已。现在,当我绘制一些东西时,我得到了通常的静态图以及一个交互式图,当我移动鼠标时,我可以看到图上的 x,y 坐标。

【讨论】:

    猜你喜欢
    • 2016-11-26
    • 1970-01-01
    • 2022-01-13
    • 2020-06-21
    • 2020-09-10
    • 1970-01-01
    • 1970-01-01
    • 2018-04-15
    • 1970-01-01
    相关资源
    最近更新 更多