执行代码,没有弹出图像窗口,提示下面的内容

来源:4-13 常用Python库Matplotlib

麦芽小程序

2018-09-27

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

* coding: UTF-8 *

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-2,2,100)
y1 = 3*x + 4
y2 = x**2

plt.plot(x,y1)
plt.plot(x,y2)

plt.show()

写回答

1回答

Oscar

2018-09-28

你是在什么操作系统环境下?看你的错误应该是你的 Matplotlib 用的 backend (后端) 是 Agg。

警告提示得很清楚:

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

意思是:“Matplotlib 现在用的是 agg,这是一个非图形界面的后端(backend),因此不能显示图形”。

关于 Matplotlib 的后端(backend),可以看官方的英文解释:

https://matplotlib.org/tutorials/introductory/usage.html#what-is-a-backend

或者这篇中文的解释(非常详细,还列出了所有后端的可能值):

matplotlib中什么是后端

-----------------------------------------

我的 Ubuntu 16.04 没有问题,因为我的 Matplotlib 用的是 TkAgg 这个后端。

用 matplotlib.get_backend() 方法可以查看目前使用的是什么后端:

matplotlib.get_backend()

//img.mukewang.com/szimg/5badee270001d6d608400165.jpg

所以,你要不试试把你的代码改成用 TkAgg 的后端(或其他后端可能也行):

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

x = np.linspace(-2,2,100)
y1 = 3*x + 4
y2 = x**2

plt.plot(x,y1)
plt.plot(x,y2)

plt.show()

当然了,你用 TkAgg 的后端就会需要安装 Tkinter 这个 Python 的软件:

sudo apt install python-tk


2
0

基于Python玩转人工智能最火框架 TensorFlow应用实践

机器学习入门,打牢TensorFlow框架应用是关键!

2214 学习 · 688 问题

查看课程