第一种:分开来画
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['axes.unicode_minus'] = False
def sigmoid(x):
return 1.0/(1.0+np.exp(-x))
def tanh(x):
return (np.exp(x) - np.exp(-x))/(np.exp(x)+np.exp(-x))
x = np.linspace(-8,8)
fig = plt.figure(figsize = (12,4))
ax1 = plt.subplot(121)
ax1.spines['top'].set_color('none')
ax1.spines['left'].set_color('none')
ax1.spines['bottom'].set_position(('data',0))
ax1.spines['right'].set_position(('data',-8))
ax1.set_xticks(range(-8,10,2))
ax1.set_yticks(np.linspace(0,1,6))
plt.plot(x,sigmoid(x),label = 'Sigmoid',color ='blue')
plt.legend()
ax2 = plt.subplot(122)
ax2.spines['top'].set_color('none')
ax2.spines['left'].set_color('none')
ax2.spines['bottom'].set_position(('data',0))
ax2.spines['right'].set_position(('data',0))
ax2.set_xticks(range(-8,10,2))
ax2.set_yticks(np.linspace(-1,1,11))
plt.plot(x,tanh(x),label = 'Tanh',color = 'red')
plt.legend()
plt.show()
plt.savefig('picture.png')
第二种:合起来画
import matplotlib.pyplot as plt
import numpy as np
mpl.rcParams['axes.unicode_minus']=False
def sigmoid(x):
return 1.0 / (1.0 + np.exp(-x))
x = np.linspace(-10, 10)
y = sigmoid(x)
tanh = 2*sigmoid(2*x) - 1 # 此处用了数学推导
fig = plt.figure(figsize=(6,4))
ax = fig.add_subplot(111)
# 设置右边框和上边框是否显示
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
# 设置x坐标轴为下边框 ,y轴为左边框
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
# 设置x轴, y轴在(0, 0)的位置
# 指定data 设置的bottom(也就是指定的x轴)绑定到y轴的0这个点上
ax.spines['bottom'].set_position(('data',0)) # 指定data 设置的bottom(也就是指定的x轴)绑定到y轴的0这个点上
ax.spines['left'].set_position(('data',0))
plt.xlim(-8,8)
plt.ylim(-1.1,1.1)
# 设置想x,y坐标轴刻度及标签
ax.set_xticks(range(-8,10,2))
ax.set_yticks(np.linspace(-1,1,11))
plt.plot(x,y,label="Sigmoid",color = "blue")
plt.plot(2*x,tanh,label="Tanh", color = "red")
plt.legend()
plt.savefig("picture.png")
更加复杂内容请点击