我要在图中[a,b]区间填充颜色,本来想用多边形的方法,但觉得直接填充更直接点,我是用的是fill_betweenx的方法,为设么只有y>=0部分被填充了,下面的部分没有被填充?
代码如下:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
#构造数据
x = np.linspace(-2,3,100)
y = -x**2+4
fig,ax = plt.subplots()
line = ax.plot(x,y,lw=2,c='r')
ax.set_xlim(-2,2)
ax.set_ylim(-4,6)
a = -1
b = 1
ax.set_xticks([a,b])
ax.set_xticklabels(['a','b'])
#ax.set_yticks([])
fig.text(0.9,0.05,'x')
fig.text(0.1,0.9,'y')
ax.text(0,-2,r'$\int_{a}^{b}-x^2+4$dx',size=20,family='fantasy',ha='center')
ax.fill_between(x,y,where=(a<=x)&(x<=b))![图片描述][1]
plt.show()
生成效果如下
ax.set_ylim(0,6)
ax.text(0,-1,r'$\int_{a}^{b}-x^2+4$dx',size=20,family='fantasy',ha='center')
ax.set_xlim(-4,4)
ax.set_ylim(-4,5)
a = -2
b = 4
min(x[a<=x]) = -2, min(x[x<=b]) = 3
ax.fill_between(x,y,where=(a<=x)&(x<=b))