导语
图表辅助元素是指在图表中添加的一些额外的元素,用于帮助读者更好地理解图表内容。定制这些元素能够使得图表更加生动、清晰、易读。
matplotlib 中提供了多个函数用于填充多边形或区域,分别为fill()、fill_between()和fillbetweenx()。其中,fill()函数用于填充多边形;fill_between()或fill_betweenx()函数分别用于填充两条水平曲线或垂直曲线之间的区域。下面介绍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说明第二条曲线位于第一条曲线上方时填充。
实操
一、导入模块
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)
三、绘制折线图并添加辅助元素
line1, = plt.plot(x, y_cos, color='b', linewidth=1.0, alpha=0.5)
line2, = plt.plot(x, y_sin, color='r', linewidth=1.0)
#添加标题
plt.title('Cos & Sin')
#添加x轴和y轴标签
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, -0.5, 0, 0.5, 1.0])
#添加图例
plt.legend(handles=[line1, line2], labels=['COS','SIN'], fancybox=True, shadow=True,
loc='upper left')
#显示网格
plt.grid(visible=True, which='major', linewidth=0.3, color='purple')
#添加注释文本
plt.annotate('cos(1)', xy=(np.pi/3.2, 0.55), xytext=(np.pi/3, 0.8), arrowprops=
{'arrowstyle':'->'}) #xy:被注释的点的坐标。xytext:被注释文本的坐标
注意: 此处line1、line2后面加逗号是用于解码,否则会报一下错误。
UserWarning: Legend does not support [<matplotlib.lines.Line2D object at 0x00000195927E36C8>] instances. A proxy artist may be used instead.
四、图表样式美化(填充颜色)
plt.fill_between(x, y_cos, y_sin, y_cos>y_sin, color='green', alpha=0.25)
五、展示图表
plt.show()
展示结果