1 引言

各位朋友大家好,欢迎来到月来客栈,我是掌柜空字符。

大家可能经常在不同的地方看到类似如下所示的图像。

图 1. 示例图1

如图1所示,左边为常见曲线可视化,通过plt.plot()方法即可绘制,而右边则是将两个曲线相交的部分进行了填充。类似的还有图2这样的形式。

图 2. 示例图2

从图2可以看出,其于与图1的差别之处就在于,在图1中yx的函数,而在图2中则为xy的函数。下面,掌柜就来分别介绍如何通过matplotlib库来完成上述两种图形的绘制。

2 填充图

从上面的示例可以看出,最主要的目的是将曲线之间的区域填充起来。在matplotlib的plot模块中我们可以借助fill_betweenfill_betweenx这两个函数来分别完成上述两个示例的绘制。

2.1 fill_between方法

根据函数名字也可以大致看出fill_between的作用是在什么之间进行填充。对于fill_between函数来说,其主要有6个比较重要的参数,如下:

在上述代码中,x表示用来指定自变量x轴的范围;y1y2分别用来指定两条以x为自变量的函数曲线y1y2,并且两条曲线没有位置关系即y1=y1,y2=y2或者y2=y1,y1=y2都行;edgecolor表示用来指定填充部分边缘的颜色;facecolor用来指定填充部分的颜色;alpha用来指定填充部分的透明度。

例如对于图1中的示例来说,我们便可以通过以下代码来完成:

在上述代码中,第3行是指定横坐标x的范围;第4-5行分别指定了两条以x为自变量的函数y1=sin(x)以及y2=x;第6-8行是在左边绘制两条曲线;第9-10行是通过fill_between来对两条曲线之间的区域进行填充。

2.2 fill_betweenx方法

这个方法与上面 fill_between方法的区别就在于它是在两条以y轴为自变量的函数x1x2之间进行填充。对于fill_betweenx函数来说,其主要有6个比较重要的参数,如下:

在上述代码中,y用来指定自变量y轴的取值范围;x1x2分别用来指定两条以y为自变量的函数曲线x1x2,并且两条曲线同样没有位置关系;剩下的3个参数同上。

进一步,通过如下代码便可以完成类似图像的绘制:

在上述代码中,第3行是定义自变量y,即纵坐标的取值范围;第4-5行分别定义了两条以y为自变量的曲线x1=sin(y)以及x2=cos(2πy)ey;第6-8行则是分别绘制这两条曲线;第9-10行是通过fill_betweenx来对两条曲线之间的区域进行填充。绘制完成后的结果如图3所示。

图 3. 示例图3

而对于例如图2中的示例来说,可以通过以下代码来完成:

在上述代码中,第3-4行是定义了自变量y的取值范围;第5-6行分别定义两条曲线;其余部分与上面相同。由于图2所示的曲线本身比较复杂,所以这里y的定义方式与之前的有所差别。

到此,对于曲线之间的两种填充方法就介绍完毕了。

本次内容就到此结束,感谢您的阅读!如果你觉得上述内容对你有所帮助,欢迎点赞转发分享!若有任何疑问与建议,请添加掌柜微信nulls8(备注来源)进行交流。青山不改,绿水长流,我们月来客栈见

引用

[1] https://blog.csdn.net/thao6626/article/details/4663974