"""
需求:绘制一个包含正弦曲线和余弦曲线的图表,具体要求如下:
(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
linewidth或lw:表示网格线的宽度。
alpha:表示网格线的透明度。
plt.plot(x, y_sin, color='red', linewidth=1.0)
plt.plot(x, y_cos, color='blue', linewidth=1.0, alpha=0.5)
# 3.图表辅助元素定制(图表标题,刻度标签,图例,网格,指向型注释文本)
添加图表标题 plt.title
plt.title("Cos & Sin")
设置x轴的刻度标签 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$'])
设置y轴的刻度标签 plt.yticks
plt.yticks([-1.0, -0.5, 0.0, 0.5, 1.0])
添加图例 plt.legend
编码 位置字符串
"best' 自适应
'upper right' 右上方
'upper left' 左上方
'lower left' 左下方
'lower right 右下方
right' 右方
'center left' 中心偏左
'center right' 中心偏右
'lower center' 中心偏下
'upper center' 中心偏上
'center' 居中
plt.legend(['COS', 'SIN'], loc='upper left')
显示网格 plt.grid
plt.grid(True)
# 4.图表样式美化(填充颜色)plt.fill_between
plt.fill_between(x, y_sin, y_cos, where=(y_sin <= y_cos), color='green', alpha=0.25)
# 5.在x=1、y=np.cos(1)的位置添加指向型注释文本 plt.annotate
arrowprops : 表示指示箭头的属性字典。
xy:表示被注释的点的坐标位置,接收元组(xy)。
xytext:表示注释文本所在的坐标位置,接收元组(xy)。
plt.annotate('cos(1)', xy=(1, np.cos(1)), xytext=(8, 30), textcoords='offset points',
arrowprops=dict(arrowstyle='->'))
展示
plt.show()