绘制正余弦图像
1. 快速创建三角函数
import matplotlib.pyplot as plt
import numpy as np
from numpy import pi
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
'''
np.linspace(start,end,points,endpoint)
start int/float 取值的开始位置
end int/float 取值的结束位置
points int 取点的个数
endpoint bool 是否取到最后一个点
'''
x = np.linspace(-np.pi,np.pi,256,endpoint=True)
c = np.cos(x)
s = np.sin(x)
2. 绘制函数图像并修改线宽及颜色
'''
`b-`是`color="blue",linestyle="-"`的简写形式
`lw`=`linewidth`
'''
plt.plot(x,s,'b-',label='正弦',lw=2.5)
plt.plot(x,c,'r-',label='余弦',lw=2.5)
3. 调整坐标轴
plt.xlim(x.min()*1.5, x.max()*1.5)
plt.ylim(c.min()*1.5, c.max()*1.5)
plt.xticks([-pi, -pi/2, 0, pi/2, pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$\pi/2$',r'$+\pi$'])
plt.yticks([-1,0,1])
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))
plt.legend(loc='upper left')
4. 特殊点注释
t = 2*pi/3
plt.plot([t,t],[0,np.cos(t)], color ='blue', linewidth=2.5, linestyle="--")
plt.scatter([t,],[np.cos(t),], 50, color ='blue')
plt.annotate(r'$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$',
xy=(t, np.sin(t)), xycoords='data',
xytext=(+10, +30), textcoords='offset points', fontsize=16,
arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2"))
plt.plot([t,t],[0,np.sin(t)], color ='red', linewidth=2.5, linestyle="--")
plt.scatter([t,],[np.sin(t),], 50, color ='red')
plt.annotate(r'$\cos(\frac{2\pi}{3})=-\frac{1}{2}$',
xy=(t, np.cos(t)), xycoords='data',
xytext=(-90, -50), textcoords='offset points', fontsize=16,
arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2"))
for label in ax.get_xticklabels() + ax.get_yticklabels():
label.set_fontsize(16)
label.set_bbox(dict(facecolor='white', edgecolor='None', alpha=0.65 ))
plt.show()
完成图