当前位置:  开发笔记 > 编程语言 > 正文

Python实现区域填充的示例代码

这篇文章主要介绍了Python实现区域填充的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

所用的库及环境:

  IDE:Pycharm

  Python环境:python3.7

  Matplotlib: Matplotlib 1.11

  Numpy: Numpy1.15.

区域填充

前言

如何填充一块区域,就是给一块区域上色

代码及效果图

fill()函数介绍

文档:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.fill.html

介绍:绘制填充多边形

属性:

  • args:是一个x,y的序列,每个多边形由其节点x和y的位置列表定义
  • color :填充的颜色
  • alpha:透明度

只填充两个图形重合区域

代码及效果图

fill_between()函数介绍  

  • x:一个序列,定义曲线的节点的x坐标
  • y1:可以是一个序列,定义第一条曲线的y坐标
  • y2:可以是一个序列,定义第二条曲线的y坐标
  • where:一个可选参数,布尔值,y1>y2表示y1线在上时填充,y1
  • interpolate :看图中会发现有些填充的地方会有空白,此参数为Tur会自动填充
  • facecolor:要填充的颜色

加入interpolate参数效果:

示例

import matplotlib.pyplot as plt
import numpy as np
 
x= np.linspace(0,5*np.pi, 1000)
 
y1 = np.sin(x)
y2 = np.sin(2*x)
 
#plt.plot(x,y1)
#plt.plot(x,y2)
 
plt.fill(x,y1,'b',alpha=0.5)
plt.fill(x,y2,'r',alpha=0.3)
 
plt.fill_between(x,y1,y2,facecolor='green')
plt.grid(True)
 
plt.show()
 
#########################################################
plt.plot(x,y1,'b',alpha=0.5)
plt.plot(x,y2,'r',alpha=0.3)
#添加条件
#如果数据点比较少的情况下,会有缝隙出现,使用interpolate可以填充缝隙
plt.fill_between(x,y1,y2,where=y1>=y2,facecolor='green',interpolate=True)
plt.fill_between(x,y1,y2,where=y2>y1,facecolor='yellow',interpolate=True)
plt.grid(True)
 
plt.show()
###########################################################
 
n = 256
X = np.linspace(-np.pi, np.pi, n, endpoint=True)
Y = np.sin(2 * X)
 
 
plt.plot(X, Y + 1, color='blue', alpha=1.00)
plt.fill_between(X, 1, Y + 1, color='blue', alpha=.25)
 
plt.plot(X, Y - 1, color='blue', alpha=1.00)
plt.fill_between(X, -1, Y - 1, (Y - 1) > -1, color='blue', alpha=.25)
plt.fill_between(X, -1, Y - 1, (Y - 1) < -1, color='red', alpha=.25)
 
plt.xlim(-np.pi, np.pi)
plt.xticks(())
plt.ylim(-2.5, 2.5)
plt.yticks(())

效果图:

参考视频:《Python数据可视化分析 matplotlib教程》

结语:

感谢matplotlib提供的文档,感谢麦子学院提供的视频教学

到此这篇关于Python实现区域填充的示例代码的文章就介绍到这了,更多相关Python 区域填充内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有