觉得下图不错美观大方,现仿制下图:
import numpy as np
import matplotlib.pyplot as plt
def sigmoid(x):
return 1 / (1 + np.exp(-x))
def sigmoid_derivative(x):
return sigmoid(x) * (1 - sigmoid(x))
# 设置中文字体
plt.rcParams['font.family'] = ['Times','Heiti TC' ]
plt.rcParams['axes.unicode_minus'] = False # 解决负号显示问题
# 生成一系列x值
x_values = np.linspace(-10, 10, 100)
# 计算对应的sigmoid函数值和导数值
y_values = sigmoid(x_values)
derivative_values = sigmoid_derivative(x_values)
# 绘制sigmoid函数及其导数图像
plt.plot(x_values, y_values, label='Sigmoid函数', color='orange')
plt.plot(x_values, derivative_values, label='Sigmoid导数', linestyle='--', color='green')
# plt.title('Sigmoid 函数及其导数')
# plt.xlabel('输入')
# plt.ylabel('输出')
#关闭网格
plt.grid(False)
#坐标轴注释
plt.legend()
# 修改坐标轴的边界颜色
plt.gca().spines['left'].set_color('black')
# 为none表示不显示该边框
plt.gca().spines['right'].set_color('none')
plt.gca().spines['top'].set_color('none')
# 规定y轴坐落在x=0的位置上
plt.gca().spines['left'].set_position(('data', 0))
# 规定x轴坐落在y=0的位置上
plt.gca().spines['bottom'].set_position(('data', 0))
# 设置y轴范围从-0.1开始,稍微给y的负半轴留一点会美观一些
plt.ylim(-0.1, 1)
# 保存该图,dpi越大,图越清晰。
# savefig一定要在show前执行,不然图像会变成空白
plt.savefig("sigmoid.png", dpi=750, bbox_inches='tight')
# 展示该图
plt.show()
结果如下: