如何仅在间隔中填充绘图

时间:2018-03-15 20:19:42

标签: python-3.x numpy matplotlib

我正在尝试仅在间隔中生成一个填充的图 我可以为区间设置一个边界,但使用2会给出错误消息:

这段代码可以使用

import matplotlib
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 1, 500)
y = np.sin(4 * np.pi * x) * np.exp(-5 * x)
plt.plot(x,y)
plt.fill_between(x,0, y,where=x>0.25)
plt.show()

Obtained figure

这段代码会出错

import matplotlib
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 1, 500)
y = np.sin(4 * np.pi * x) * np.exp(-5 * x)
plt.plot(x,y)
plt.fill_between(x,0, y,where=0.5>x>0.25)
plt.show()

----> 7 plt.fill_between(x,0,y,其中= 0.5> x> 0.25)       8 plt.show()

ValueError:具有多个元素的数组的真值是不明确的。使用a.any()或a.all()

我无法弄清楚如何解决这个问题

1 个答案:

答案 0 :(得分:0)

您可以使用布尔“和”:

plt.fill_between(x,0, y,where=(0.5>x) & (x>0.25))