python使用matplotlib显示曲线,突然一执行就退出了,无法显示图像,
测试代码如下test.sh:
import numpy as np
import math
import matplotlib.pyplot as plt
x = np.arange(-10, 10, 0.1)
y = []
for t in x:
y_1 = 1 / (1 + math.exp(-t))
y.append(y_1)
plt.plot(x, y, label="sigmoid")
plt.xlabel("x")
plt.ylabel("y")
plt.ylim(0, 1)
plt.legend()
plt.show()
python3 ./test.sh
一执行就退出了,无任何错误打印
原因是matplotlib使用的显示后端是Agg,Agg是无法显示的,需要改成
Qt4Agg Qt5Agg TkAgg WX WXAgg Agg Cairo GDK PS PDF SV中的一种,
比如TkAgg, 需要先安装python3-matplotlib-tk (opensuse系统下软件包的名称是这个, ubuntu下好像是python3-tk)
代码修改如下
import matplotlib
matplotlib.use('TkAgg')
import numpy as np
import math
import matplotlib.pyplot as plt
x = np.arange(-10, 10, 0.1)
y = []
for t in x:
y_1 = 1 / (1 + math.exp(-t))
y.append(y_1)
plt.plot(x, y, label="sigmoid")
plt.xlabel("x")
plt.ylabel("y")
plt.ylim(0, 1)
plt.legend()
plt.show()
修改后正常显示。
作者:帅得不敢出门