需求:绘制一个包含正弦曲线和余弦曲线的图表,具体要求如下:
(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
准备图表数据:
# 画布
fig = plt.figure()
ax = fig.add_subplot(111)
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y_cos, y_sin = np.cos(x), np.sin(x)
绘制图表:
cos = plt.plot(x, y_cos, color='r', linewidth=1.0, label='cos')
sin = plt.plot(x, y_sin, color='b', linewidth=1.0, alpha=0.5, label='sin')
添加辅助元素:
plt.title('Cos & Sin')
plt.xticks([-np.pi, -np.pi / 2, 0, np.pi / 2, np.pi],
[r'$-\pi$', r'$-\pi/2$', r'$0$', '$\pi/2$', '$\pi$'])
plt.yticks([-1, -0.5, 0, 0.5, 1], ['-1.0', '-0.5', '0.0', '0.5', '1.0'])
plt.legend(loc='upper left', fancybox=True)
plt.grid()
plt.annotate('cos(1)',(1,np.cos(1)),(1.35,np.cos(1)+0.25),arrowprops={'arrowstyle':'->'})
plt.fill_between(x,y_cos, y_sin, y_cos > y_sin, color='g', alpha=0.25)
# 展示图表
plt.show()
plt.fill_between()
函数参数说明:
作用:填充两条水平曲线之间的区域
x:表示x轴坐标的序列
y_cos:表示第一条曲线的y轴坐标
y_sin:表示第二条曲线的y轴坐标
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)
labels = ['COS', 'SIN']
cos = plt.plot(x, y_cos, color='r', linewidth=1.0, label='cos')
sin = plt.plot(x, y_sin, color='b', linewidth=1.0, alpha=0.5, label='sin')
plt.title('Cos & Sin')
plt.xticks([-np.pi, -np.pi / 2, 0, np.pi / 2, np.pi],
[r'$-\pi$', r'$-\pi/2$', r'$0$', '$\pi/2$', '$\pi$'])
plt.yticks([-1, -0.5, 0, 0.5, 1], ['-1.0', '-0.5', '0.0', '0.5', '1.0'])
plt.legend(loc='upper left', fancybox=True)
plt.grid()
plt.annotate('cos(1)',(1,np.cos(1)),(1.35,np.cos(1)+0.25),arrowprops={'arrowstyle':'->'})
plt.fill_between(x,y_cos, y_sin, y_cos > y_sin, color='g', alpha=0.25)
plt.show()