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

Python 在Matplotlib中填充图形之间的空间,python,numpy,matplotlib,math,plot,Python,Numpy,Matplotlib,Math,Plot,我需要填充y、y1和y2之间的区域,但我正在填充y图形下的额外空间。我如何修复此问题 import numpy as np import matplotlib.pyplot as plt y = lambda z: (2 * z - z ** 2) ** (1 / 2) y1 = lambda x: (6 * x - x ** 2) ** (1 / 2) y2 = lambda c: c x = np.linspace(0, 12, 500) z = np.linspace(0, 12, 50

我需要填充y、y1和y2之间的区域,但我正在填充y图形下的额外空间。我如何修复此问题

import numpy as np
import matplotlib.pyplot as plt

y = lambda z: (2 * z - z ** 2) ** (1 / 2)
y1 = lambda x: (6 * x - x ** 2) ** (1 / 2)
y2 = lambda c: c
x = np.linspace(0, 12, 500)
z = np.linspace(0, 12, 500)
c = np.linspace(0, 12, 500)
plt.ylim(0, 4)
plt.xlim(0, 4)

plt.plot(z, y(z), color='blue', label="$y=\\sqrt{2x-x^2}$")
plt.plot(c, y2(c), color='black', label='$y=x$')
plt.plot(x, y1(x), color='red', label='$y=\\sqrt{6x-x^2}$')
plt.plot([0, 4], [0, 0], color='yellow', label='y=0')
plt.grid(True, zorder=5)

plt.fill_between(x, np.minimum(y2(c), y1(x)), y1(x), alpha=0.5)
plt.legend()
plt.show()

我不使用
numpy
,所以我想可以通过另一种方式获得全面的列表

x_before=np.array([a表示x中的a,如果y(a)>y2(a)])
x_after=np.数组([a对于x中的a,如果a>=max(x_after)和y1(a)>=y2(a)])
plt.fill_介于(x_之前,y(x_之前),y1(x_之前),color=“浅蓝色”)
plt.填充(x_后,y2(x_后),y1(x_后),color=“浅蓝色”)

检查此
plt.fill_介于(x,np.最小值(y2(c),y(x)),y(x),alpha=0.5)
,我不确定您需要哪些零件这正是我不需要的零件您可以添加快照以确定您需要填充哪些零件吗?我圈出的区域如果我需要这个部分,我应该写什么?