学习可视化至今,我们已经学过了如何绘图,填色,添加格线,文本图例等等知识,今天综合绘制一幅三角函数图。
使用 fill_between()函数填充两条水平曲线之间的区域
fill_between()函数的语法格式如下所示:
fill_between (x,y1,y2=0,where=None,interpolate=False,step=None,
data=None,**kwargs)
该函数常用参数的含义如下。
·x:表示x轴坐标的序列。
·y1:表示第一条曲线的y轴坐标。
·y2:表示第二条曲线的y轴坐标。
·where :布尔值,表示要填充区域的条件。y1>y2 说明第一条曲线位于第二条曲线上之时填 充;y1<y2说明第二条曲线位于第一条曲线上方时填充。
使用 fill_betweenx()函数填充两条垂直曲线之间的区域
fill_betweenx()函数的语法格式如下:
fill_betweenx(y,x1,x2=0,where=None,step=None,interpolate=False,
data=None,**kwargs)
该函数常用参数的含义如下:
·y:表示y轴坐标的序列。
·x1:表示第一条曲线的x轴坐标。
·x2:表示第二条曲线的x轴坐标。
·where :布尔值,表示要填充区域的条件。x1>x2说明第一条曲线位于第二条曲线右方时填 充;x1<x2 说明第二条曲线位于第一条曲线右方时填充。
添加指向型注释文本
指向型注释文本是指通过指示箭头的注释方式对绘图区域的图形进行解释的文本,般使用线条连接说明点和箭头指向的注释文字。pyplot模块中提供了annotate(函数为图类
加指向型注释文本,
该函数的语法格式如下所示:
annotate(s,xy,*args,**kwargs)
该函数常用参数的含义如下。.s:表示注释文本的内容。
xy:表示被注释的点的坐标位置,接收元组(x,y)。
·xytext : 表示注释文本所在的坐标位置,接收元组(x,y)。
.xycoords :表示xy的坐标系统,默认值为“data”,代表与折线图使用相同的坐标系统 arrowprops : 表示指示箭头的属性字典。.bbox: 表示注释文本的边框属性字典。
arrowprops 参数接收一个包含若干键的字典,通过向字典中添加键值对来控制箭头的显示。常见的控制箭头的键包括width、headwidth、headlength、shrink、arrowstyle等,其中键 arrowstyle代表箭头的类型,该键对应的值及对应的类型如图所示:
需求:绘制一个包含正弦曲线和余弦曲线的图表,具体要求如下:
(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(x,y_cos)
plt.plot(x,y_sin)
# 3.图表辅助元素定制
#设置图表标题
plt.title("COS & SIN")
#设置x轴刻度 ,可参考官网matplotlib
plt.xticks([-np.pi,-np.pi/2,0,np.pi,np.pi/2],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$\pi/2$',r'$\pi$'])
#设置y轴刻度
plt.yticks ([-1.0, -0.5, 0.0, 0.5, 1.0])
#添加图例
lines = plt.plot(x, y_cos, x, y_sin)
plt.legend(lines, ['cos', 'sin'], ncol=1, loc='upper left')
#设置网格
plt.grid(axis='both',linewidth=0.5,)
#为图标添加指向型注释文本
plt.annotate("cos(1)",xy=(np.pi/3,0.5),xytext=(np.pi/3,0.7),arrowprops=dict(arrowstyle="->"))
# 4.图表样式美化(填充颜色)
plt.fill_between (x,y_cos,y_sin,y_cos>y_sin,color='b',alpha=0.3)
plt.show()