python matplotlib plt.show() 不显示图像
自己使用matplotlib时经常发生plt.show()之后不显示图像的情况
首先注意matplotlib的版本 版本发生冲突时会出现 Procdacess finished with exit code (一大串数字) (0xC0000005)
本人使用 pip install matplotlib==2.2.4 安装的matplotlib 2.2.4。感觉这个版本比较稳定,不易引起版本冲突。
如果出现使用了 from matplotlib import pyplot as plt
plt.show()之后仍然不显示图像,直接出现Process finished with exit code 0,也不报错,那么就是backend有问题了。
网上说用
import pylab
pylab.show() 但我仍然看不到图片。
问题出在使用
import matplotlib
print(matplotlib.get_backend())
之后,得到 module://backend_interagg
本人通过修改matplot源码解决
ctrl+鼠标左键 点进get_backend()
发现源码如下
def get_backend():
"""Return the name of the current backend."""
return rcParams['backend']
将 rcParams[‘backend’] 修改为 rc_params()[‘backend’]
def get_backend():
"""Return the name of the current backend."""
return rc_params()['backend']
再次使用print(matplotlib.get_backend())得到应该是TkAgg,这是matplotlib默认使用的backend
另外一种解决办法
import matplotlib
matplotlib.use('Qt5Agg')
from matplotlib import pyplot as plt
可行的backends有 [‘GTK’, ‘GTKAgg’, ‘GTKCairo’, ‘GTK3Agg’, ‘GTK3Cairo’,‘MacOSX’, ‘nbAgg’, ‘Qt4Agg’, ‘Qt4Cairo’, ‘Qt5Agg’, ‘Qt5Cairo’, ‘TkAgg’,‘TkCairo’, ‘WebAgg’, ‘WX’, ‘WXAgg’, ‘WXCairo’, ‘agg’, ‘cairo’, ‘gdk’,‘pdf’, ‘pgf’, ‘ps’, ‘svg’, ‘template’]
需要注意顺序,在 from matplotlib import pyplot as plt 上写 matplotlib.use(‘Qt5Agg’) 要不会报错。
推荐阅读
-
VSCode编辑python代码时使用matplotlib绘图plt.show()阻塞代码运行
-
python中显示图片的plt.imshow plt.show()内存泄漏
-
【Python开发】matplotlib绘图不显示问题解决plt.show()
-
python的matplotlib中plt.show()不显示图像
-
python matplotlib plt.show() 不显示图像
-
python:图片显示plt.imshow()、plt.show()
-
python matplotlib.pyplot.show() plt.show()(显示一个图表)
-
Python使用matplotlib实现的图像读取、切割裁剪功能示例
-
Python使用matplotlib模块绘制图像并设置标题与坐标轴等信息示例
-
完美解决Python matplotlib绘图时汉字显示不正常的问题