导入matplotlib模块
import numpy as np
import matplotlib.pyplot as plt
设置中文
from pylab import *
mpl.rcParams['font.sans-serif']=['SimHei']
mpl.rcParams['axes.unicode_minus']=False
导入正余弦函数所需数据
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y_cos, y_sin = np.cos(x), np.sin(x)
创建画布,开始绘制
fig = plt.figure()
ax = fig.add_subplot(111)
#正弦曲线,linewidth是线宽
ax.plot(x, y_sin,'r', linewidth=1., label='Sin')
#余弦曲线,alpha为透明度
ax.plot(x, y_cos,'b', linewidth=1., alpha=0.7, label='Cos')
添加图表标题
ax.set_title("正余弦图表")
添加x轴和Y轴的刻度标签
ax.set_xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
[r'$-\pi$', r'$-\pi/2$', r'$0$', r'$\pi/2$', r'$\pi$'])
ax.set_yticks([-1., -0.5, 0., 0.5, 1.])
调整图例位置,显示网格
ax.legend(loc='upper left')
#loc用于粗略调整图例在整个绘图区域的位置
ax.grid(b=True,#b 表示是否显示网格
axis='both')
# axis表示显示哪个方向的网格
使用annotate()添加指向性注释文本
ax.annotate("cos(1)",# 引号内输入注释文本的内容
xy=(1, np.cos(1)), # 表示被注释的点的位置,接收的是元组(x,y)
xytext=(np.pi/2.5, np.cos(0.7)), # 表示注释文本所在的坐标位置,接收的同上
arrowprops={'arrowstyle':'->'}) # 表示指示箭头的属性字典
使用fill_between()填充两条水平曲线之间的区域
# color和alpha为**kwargs参数
ax.fill_between(x, #x轴坐标的序列
y_cos, #第一条曲线的y轴坐标
y_sin, #第二条曲线的y轴坐标
y_cos > y_sin, #要填充区域的条件
color='g', #填充区域的颜色
alpha=0.5) #填充颜色的透明度
展示图表
plt.show()
运行结果: