Matplotlib.Pyplot 进行可视化时,有时可能会遇到输出不出图像的问题,并且没有任何报错
在使用 Matplotlib.Pyplot 进行可视化时,有时可能会遇到输出不出图像的问题,并且没有任何报错。这个问题比较棘手,因为根据错误提示来确定问题的位置是很困难的。下面介绍几种可能会导致这个问题的原因。
阅读更多:Matplotlib 教程
原因一:图像被保存在后台
在运行 Matplotlib.Pyplot 进行可视化的时候,如果不使用 plt.show()
函数来显示图像,那么 Matplotlib.Pyplot 会在后台处理图像。这时可以使用以下代码来判断图像是否已经被保存:
import matplotlib.pyplot as plt
# 绘制图像
plt.plot([1, 2, 3, 4])
# 暂停绘制
plt.pause(0.001)
# 查看图像是否已经被保存
print(plt.fignum_exists(1))
其中 plt.fignum_exists()
函数返回值为 True
表示图像已经被保存,否则返回 False
。如果返回值是 True
,可以尝试调用 plt.show()
函数来显示图像。
原因二:未激活 Matplotlib.Pyplot
在运行 Matplotlib.Pyplot 进行可视化前,需要调用 pyplot.subplots()
函数来创建一个图像和一个子图,然后才能使用其他的函数来绘制图像。如果未创建图像和子图,就直接使用其他函数,那么图像就无法绘制出来。
import matplotlib.pyplot as plt
# 未创建图像和子图,直接使用 plot() 函数
plt.plot([1, 2, 3, 4])
# 暂停绘制
plt.pause(0.001)
# 查看图像是否已经被保存
print(plt.fignum_exists(1))
原因三:使用错误的 backend
Matplotlib 可以使用多个 backend 来显示图像,如 Qt5Agg,TkAgg,PS,PDF 等。如果没有选择合适的 backend,那么就可能会导致图像无法正确显示出来。
下面是如何切换 backend 的示例:
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4])
plt.show()
将 use()
函数的参数设置为合适的 backend 类型即可。
原因四:PyCharm 配置问题
在使用 PyCharm 进行编程时,有时也会遇到 Matplotlib.Pyplot 无法显示图像的问题。这时可以尝试修改 PyCharm 的配置,在生成的可执行文件中添加以下代码:
import matplotlib
matplotlib.use('TkAgg')
原因五:使用 Jupyter Notebook
在 Jupyter Notebook 中使用 Matplotlib.Pyplot 时,需要添加 %matplotlib inline
魔术命令,否则图像也无法正确显示。修改示例代码如下:
%matplotlib inline
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4])
plt.show()
总结
Matplotlib.Pyplot 无法显示图像的问题可能是由多种原因引起的。本文介绍了几种可能会导致这个问题的原因及相应的解决方法,希望能帮助读者顺利解决这个问题。