首先,通过np.linspace()
函数生成了在-π
到π
之间等间距的256个数据点,作为横坐标x
。接着,使用np.cos()
和np.sin()
函数计算出对应的正弦值和余弦值,分别存储在y_cos
和y_sin
中。
然后,使用plt.plot()
函数分别绘制了正弦曲线和余弦曲线的折线图。color
参数指定了线条的颜色,linewidth
参数设置了线条的宽度,alpha
参数设置了线条的透明度,label
参数设置了线条的标签。
接下来,使用一系列函数对图表进行辅助元素的定制。plt.title()
函数设置了图表的标题,plt.xticks()
和plt.yticks()
函数分别设置了横坐标和纵坐标刻度的位置和标签,plt.legend()
函数创建了一个图例,并指定其位置在左上角,plt.grid(True)
函数在图表中添加了纵横交错的网格线,plt.annotate()
函数在图表中添加了一个指向型注释文本,并设置了箭头的样式。
最后,使用plt.fill_between()
函数根据正弦曲线和余弦曲线的大小关系,在两条曲线之间填充了一段区域,使用color
参数指定填充颜色,alpha
参数设置填充的透明度。
最后,使用plt.show()
函数展示图表。
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y_cos, y_sin = np.cos(x), np.sin(x)
plt.plot(x, y_sin, color='red', linewidth=1.0, label='sin')
plt.plot(x, y_cos, color='blue', linewidth=1.0, alpha=0.5, label='cos')
plt.title('Sin and Cos Curve')
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([-1, 0, 1])
plt.legend(loc='upper left')
plt.grid(True)
plt.annotate('cos(1)', xy=(1, np.cos(1)), xytext=(1.5, 0.5), arrowprops=dict(facecolor='black', shrink=0.05))
plt.fill_between(x, y_sin, y_cos, where=y_sin > y_cos, color='green', alpha=0.25)
plt.show()