python plt.show没有图像显示

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()

修改后正常显示。

作者:帅得不敢出门
 

你可能感兴趣的:(python)