代码之家  ›  专栏  ›  技术社区  ›  Andrey

如何在x和两个函数(交集)之间填充?

  •  1
  • Andrey  · 技术社区  · 6 年前

    如何填充两个函数之间的交集?

    我有这个:

    我需要f1和f2的交集(min(f1,f2))。像这样:

    这是我的代码:

    导入matplotlib.pyplot as plt 将numpy导入为np x=np.数组(np.linspace(0,10,1000))。 f1=eval('-x+10') F2= EVAR(′x) plt.plot(x,f1,label='f1') plt.plot(x,f2,label='f2') 请在(x,f1,f2,alpha=0.5)之间填充 传奇() 显示() < /代码> < enter image description here

    我需要f1和f2的交集(min(f1,f2))。这样地:

    enter image description here

    以下是我的代码:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.array(np.linspace(0, 10, 1000))
    f1 = eval('-x+10')
    f2 = eval('x')
    plt.plot(x, f1, label='f1')
    plt.plot(x, f2, label='f2')
    plt.fill_between(x, f1, f2, alpha=.5)
    plt.legend()
    plt.show()
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   user6764549    6 年前

    您的问题减少到能够找到 f1和 f2的元素最小值。numpy has numpy.minimum that does exactly this.所以下面的代码给出了所需的图:

    导入matplotlib.pyplot as plt 将numpy导入为np x=np.数组(np.linspace(0,10,1000))。 f1=eval('-x+10') F2= EVAR(′x) f3=np.最小值(f1,f2) plt.plot(x,f1,label='f1') plt.plot(x,f2,label='f2') 请在(x,f3,alpha=0.5)之间填充 传奇() 显示() < /代码>

    numpy.minimum 就是这样。因此,下面的代码给出了所需的图:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.array(np.linspace(0, 10, 1000))
    f1 = eval('-x+10')
    f2 = eval('x')
    f3 = np.minimum(f1, f2)
    plt.plot(x, f1, label='f1')
    plt.plot(x, f2, label='f2')
    plt.fill_between(x, f3, alpha=.5)
    plt.legend()
    plt.show()
    

    enter image description here