Matplotlib 去除有关matplotlib.use()警告

Matplotlib 去除有关matplotlib.use()警告

在本文中,我们将介绍如何在使用Matplotlib时避免其中的一个常见警告 – “UserWarning: matplotlib.pyplot as already been imported, this call will have no effect”。

Matplotlib是Python中最常用的数据可视化库之一。即使您仅制作最基本的图表,Matplotlib也可以为您提供无数的选项和功能。但是,有些情况下,您可能会遇到某些警告,其中之一是在使用Matplotlib时会出现”UserWarning: matplotlib.pyplot as already been imported, this call will have no effect”。

这个警告通常会出现在您使用以下代码时:

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
Python

上面的示例代码中的第二行(使用use()函数)是选择可视化后端的方法。在选定后端之前使用Matplotlib的子包(如pyplot)会引发警告并可能导致不良结果。

阅读更多:Matplotlib 教程

解决警告的方法

我们可以通过使用以下代码来解决这个问题:

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
plt.switch_backend('agg')
Python

这个解决方案采用了plt.switch_backend()方法来选择后端。该方法将在导入任何其他Matplotlib模块之前调用。在调用此方法之后,我们可以安全地导入其他模块,因为我们已经选择了可视化后端。

示例

下面是一个示例代码,以说明如何使用我们提出的解决方案来避免警告:

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
plt.switch_backend('agg')

x = [1,2,3,4]
y = [5,6,7,8]

plt.plot(x,y)
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.title('样例')
plt.savefig('plot.jpg')
plt.show()
Python

在这个例子中,我们使用解决方案中的代码来解决警告问题。接下来我们简单回顾一下代码,plt.plot()函数被用来产生线状图,然后我们定义在x轴和y轴上的标注,同时在图形顶部定义了一个标题;最后,我们保存生成的图像,同时在屏幕上显示出来。

注意事项

在使用解决方案时,请注意:

  • 要在导入任何其他Matplotlib模块之前使用plt.switch_backend()。
  • 确保正确拼写了”agg” (而不是”aag”)。

总结

使用上述代码将不仅避免上面提到的警告信息,同时也能够安全地使用Matplotlib图形,一会再次见面!

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册