📌  相关文章
📜  UserWarning: Matplotlib 目前正在使用 agg,这是一个非 GUI 后端,因此无法显示该图. plt.show() - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:20:55.396000             🧑  作者: Mango

Matplotlib 使用 agg 后端问题解决方案

当我们在使用 Matplotlib 绘制图表时,有时会遇到 UserWarning: Matplotlib 目前正在使用 agg,这是一个非 GUI 后端,因此无法显示该图. plt.show() 的提示,这是因为 Matplotlib 默认使用的后端 agg 是一种非 GUI(图形用户界面) 的渲染引擎,在绘制图表时不会直接显示在屏幕上。

问题分析

plt.show() 是 Matplotlib 提供给我们的一个方便的显示图表的方法,它首先检查我们当前使用的后端是否为 GUI 后端,如果是,那么就将图表显示在屏幕上;如果不是,它就会抛出上述的警告信息。

那么我们该如何解决这个问题呢?

解决方案
1. 切换 Matplotlib 后端

我们可以通过切换 Matplotlib 使用的后端来解决这个问题,常用的后端有:TkAggQt5AggQt4AggWXAggGTK3AggGTKAgg 等等,这些后端都是基于 GUI 的渲染引擎,可以直接在屏幕上显示图表。

import matplotlib
matplotlib.use('TkAgg')  # 切换至 TkAgg 后端
import matplotlib.pyplot as plt

# 此处省略图表绘制代码

plt.show()  # 显示图表
2. 配置 Matplotlib 使用 GUI 界面

另一种方法是通过配置 Matplotlib 使用 GUI 界面来解决这个问题。

import matplotlib
matplotlib.use('TkAgg')  # 使用 TkAgg 后端
import matplotlib.pyplot as plt

# 此处省略图表绘制代码

# 启用 GUI 界面
manager = plt.get_current_fig_manager()
manager.window.mainloop()

通过上面两种方法,我们可以轻松解决 Matplotlib 使用 agg 后端无法显示图表的问题。

总结

Matplotlib 是 Python 中常用的绘图库,常常用于数据可视化等方面。在使用过程中,可能会遇到某些问题,比如本文所讲的 Matplotlib 后端问题。针对这类问题,我们可以采用切换后端或者配置使用 GUI 界面的方法来解决。