背景介绍
今天我们将学习如何填充Matplotlib中的线图。这不仅可以使我们的图表看起来更专业,而且我们还可以通过根据特定阈值填充区域来添加有用信息。
入门实例
接下来看一个例子:读取一个data.csv文件内容为统计不同年龄段的所有开发人员、Python开发人员、JavaScript开发人员的中等工资表格,我们用填充区域的方式显示Python开发高于所有开发人人员的薪水年龄(黄色区域),以及低于所有开发人员的薪水人员的年龄(红色区域),csv文件内容大致如下:
具体代码如下:
import pandas as pdfrom matplotlib import pyplot as pltfrom matplotlib import rcParams#设置图表字体,防止中文乱码rcParams['font.family'] = 'Microsoft YaHei'rcParams['font.sans-serif'] = 'Microsoft YaHei'data = pd.read_csv('data.csv')ages = data['Age']dev_salaries = data['All_Devs']py_salaries = data['Python']js_salaries = data['JavaScript']plt.plot(ages,dev_salaries,color='#444444', linestyle='--',label='所有开发人员薪水' )plt.plot(ages,py_salaries,label='Python开发薪水')#使用fill_between()方法进行填充区域#where 当python开发薪水大于所有开发薪水时候#interpolate 定义填充区域为Ture#color:区域颜色#alpha :设置透明度plt.fill_between(ages,py_salaries, dev_salaries, where=(py_salaries>dev_salaries), interpolate=True,color='yellow',alpha=0.25, label='高于指定薪水薪水')#使用fill_between()方法进行填充区域#where 当python开发薪水小于等于所有开发薪水时候#interpolate 定义填充区域为Ture#color:区域颜色#alpha :设置透明度plt.fill_between(ages,py_salaries,dev_salaries, where=(py_salaries<=dev_salaries), interpolate=True,color='red',alpha=0.25, label='低于指定薪水')plt.legend()plt.title('按年龄计算中等工资')plt.xlabel('年龄')plt.ylabel('中等工资')plt.tight_layout()plt.show()
运行效果图: