当前位置 博文首页 > Python实现区域填充的示例代码

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

    作者:⑨⑨⑦④ 时间:2021-07-29 18:42

    所用的库及环境:

      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<y2表示y2线在上时填充
    • 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提供的文档,感谢麦子学院提供的视频教学

    jsjbwy