"""
需求:绘制一个包含正弦曲线和余弦曲线的图表,具体要求如下:
(1) 正弦曲线的样式:红色、线宽为1.0;
(2) 余弦曲线的样式:蓝色、线宽为1.0,透明度为0.5;
(3) x轴的刻度标签为“-π”、 “-π/2”、 “0”、 “π/2”、 “-π”;
(4) 在x=1、y=np.cos(1)的位置添加指向型注释文本;
(5) 为正弦曲线和余弦曲线封闭起来的区域填充绿色,透明度为0.25.
最终的效果见运行结果图示。
"""
import numpy as np
import matplotlib.pyplot as plt
# 1.准备数据
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y_cos, y_sin = np.cos(x), np.sin(x)
# 2.绘制折线
#plt.plot
plt.plot(x, y_cos, linewidth=1, color ='blue' ,alpha=0.5 , label='cox(x)')
plt.plot(x, y_sin , linewidth=1, color ='red', label='sin(x)' )
# 3.图表辅助元素定制(图表标题,刻度标签,图例,网格,指向型注释文本)
#plt.title label:表示标题文本
plt.title("Cos & Sin")
#plt.xticks 设置刻度标签
plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi ],[r'$-\pi$', r'$-\pi/2$', r'$0$', r'$\pi/2$',r'$\pi$'])
#plt.yticks
plt.yticks([-1.0, -0.5, 0, 0.5, 1.0])
#plt.legend :图例 loc= 粗略调整图例位置
plt.legend(['COS','SIN'], loc='upper left')
#plt.grid :显示网格
plt.grid(b=True, linewidth=0.5)
#plt.annotate :表示指向型注释文本
s='cos(1)'表示注释文本内容,
xy:表示注释的坐标位置,接收元组,xytext:表示文本所在位置,接收元组,
arrowprops表示箭头属性字典,箭头类型
plt.annotate('cos(1)', xy=(1, np.cos(1)), xytext=(1.3 ,0.9), arrowprops=dict(arrowstyle= "->"))
# 4.图表样式美化(填充颜色)
#plt.fill_between : y_cos>y_sin表示填充区域条件
plt.fill_between (x, y_cos , y_sin, y_cos>y_sin,color="green", alpha=0.25)