Área de relleno de Matplotlib bajo la curva entre dos valores x solamente
Me gustaría llenar el área bajo una curva entre dos valores en el eje horizontal solamente. Lo intenté
import matplotlib.pyplot as plt
import numpy as np
from scipy.stats import norm
x = np.linspace(-4,4, 10000)
nVals = [norm.pdf(i,0,1) for i in x]
line = plt.plot(x,nVals)
plt.fill_between(x,nVals,color = '#111111',where = x > -3 and x < -2)
plt.axis([-4,4,0,.5])
plt.show()
pero vuelve
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
No entiendo este mensaje; cuando corro
z = -2.5
print z > -3 and z < -2
Pitónhace entiendo a qué me refiero e imprime
True
Entonces, ¿por qué esto no funciona confill_between
y como puedo resolver eso?