此问题在此处已有答案:
fill between two lines lacking common x values(1个答案)
fill between multiple lines(3个答案)
How do I fill between two curves defined by two different sets of arrays?(2个答案)
How to fill between two lines with different x and y(1个答案)
21天前关闭
我想填充两个区域,第一个是由所有四个函数包围的,第二个是由f和g函数包围的。据我所知,要应用fill_between()函数,y数据应该由相同的x数据生成。我知道这个问题可以通过用相同的x数据生成函数来简化,但我想知道如何以这种方式解决这个问题(不同的x数据)。
import numpy as np
import matplotlib.pyplot as plt
x1=np.linspace(0, 3, 100)
x2=np.linspace(0.4, 2.6, 150)
x3=np.linspace(0, 1.6, 180)
x4=np.linspace(0, 3, 125)
f=np.exp(x1)
g=5*x2-1
l=-40*x3+10
t=3*x4+9
plt.plot(x1, f, label='f(x)=e^x')
plt.plot(x2, g, label='g(x)=5x-1')
plt.plot(x3, l, label='l(x)=-4x+10')
plt.plot(x4, t, label='t(x)=3x+9')
plt.legend()
plt.ylabel('y axis')
plt.xlabel('x axis')
plt.ylim(0,)
plt.show()
字符串
的数据
我尝试使用plt.fill_between()函数。
1条答案
按热度按时间r6vfmomb1#
要使用plt.fill_between(),你的曲线需要公共的x值。在这个例子中,你可以通过重写代码来声明x1,.,x4变量来解决这个问题。
字符串
之后,您可以使用多个plt.fill_between()方法来填充该区域。
型
不幸的是,这留下了一些小的但可见的空白处。这是因为x,y列表不包括精确的交点,这使得
where=
子句选择离交点最近的点。