Python 在Matplotlib中填充3个图形之间的空间

Python 在Matplotlib中填充3个图形之间的空间,python,numpy,matplotlib,math,plot,Python,Numpy,Matplotlib,Math,Plot,我需要填充图表之间的阴影区域。我应该写什么来填充 使函数的域相同(例如[0,4])。以下代码符合您的要求: import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 4, 500) y = np.piecewise(x, [x <= 2, x > 2], [lambda x: np.sqrt(2 * x - x ** 2), 0]) y1 = np.sqrt(6 * x - x ** 2) y2

我需要填充图表之间的阴影区域。我应该写什么来填充


使函数的域相同(例如
[0,4]
)。以下代码符合您的要求:

import numpy as np
import matplotlib.pyplot as plt

x =  np.linspace(0, 4, 500)

y = np.piecewise(x, [x <= 2, x > 2], [lambda x: np.sqrt(2 * x - x ** 2), 0])
y1 = np.sqrt(6 * x - x ** 2)
y2 = x
y3 = 0*x


plt.plot(x, y, color='blue', label="$y=\\sqrt{2x-x^2}$")
plt.plot(x, y1, color='red', label='$y1=\\sqrt{6x-x^2}$')
plt.plot(x, y2, color='black', label='$y2=x$')
plt.plot(x, y3, color='yellow', label='y3=0')
plt.grid(True, zorder=5)
miny = np.minimum(y2, y1)
plt.fill_between(x, y, miny, where = (miny > y), alpha=0.5)
plt.legend()
plt.show()
将numpy导入为np
将matplotlib.pyplot作为plt导入
x=np.linspace(0,4500)
y=np.分段(x,[x2],[lambda x:np.sqrt(2*x-x**2),0])
y1=np.sqrt(6*x-x**2)
y2=x
y3=0*x
plt.plot(x,y,color='blue',label=“$y=\\sqrt{2x-x^2}$”)
plt.plot(x,y1,color='red',label='$y1=\\sqrt{6x-x^2}$')
plt.plot(x,y2,color='black',label='$y2=x$')
plt.plot(x,y3,颜色='黄色',标签='y3=0')
plt.grid(真,zorder=5)
最小值=np.最小值(y2,y1)
plt.fill_介于(x,y,miny,其中=(miny>y),alpha=0.5)
plt.legend()
plt.show()

import numpy as np
import matplotlib.pyplot as plt

x =  np.linspace(0, 4, 500)

y = np.piecewise(x, [x <= 2, x > 2], [lambda x: np.sqrt(2 * x - x ** 2), 0])
y1 = np.sqrt(6 * x - x ** 2)
y2 = x
y3 = 0*x


plt.plot(x, y, color='blue', label="$y=\\sqrt{2x-x^2}$")
plt.plot(x, y1, color='red', label='$y1=\\sqrt{6x-x^2}$')
plt.plot(x, y2, color='black', label='$y2=x$')
plt.plot(x, y3, color='yellow', label='y3=0')
plt.grid(True, zorder=5)
miny = np.minimum(y2, y1)
plt.fill_between(x, y, miny, where = (miny > y), alpha=0.5)
plt.legend()
plt.show()