填充两个功能之间的区域

Alv*_*pik 3 python plot matplotlib

import matplotlib.pyplot as plt
import numpy as np

def domain():
    x = np.arange(0, 10, 0.001)

    f1 = lambda x: (2*x - x**2)**0.5
    plt.plot(x, f1(x), label = '$y = \sqrt{2x - x^2}$')
    plt.plot(f1(x), x, label = '$x = \sqrt{2y - y^2}$')
    plt.xlabel('X')
    plt.ylabel('Y')
    plt.legend(loc='best')


    axes = plt.gca()
    axes.set_xlim([0, 5])
    axes.set_ylim([0, 5])
    plt.show()

domain()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如何利用fill_between()填充2条线之间的区域?换句话说,我怎样才能在绿线和蓝线之间填充小花瓣?

Zer*_*ero 5

@user 5061在代码上是正确的,反函数在那里

import matplotlib.pyplot as plt
import numpy as np

def domain():
    x = np.arange(0, 10, 0.001)

    f1 = lambda x: (2*x - x**2)**0.5
    f2 = lambda x: 1 - (1-x*x)**0.5 # other part is f2 = lambda x: 1 + (1-x*x)**0.5
    plt.plot(x, f1(x), label = '$y = \sqrt{2x - x^2}$')
    plt.plot(f1(x), x, label = '$x = \sqrt{2y - y^2}$')
    plt.fill_between(x, f1(x), f2(x), where=f1(x)>=f2(x), interpolate=True, color='yellow')
    plt.xlabel('X')
    plt.ylabel('Y')
    plt.legend(loc='best')


    axes = plt.gca()
    axes.set_xlim([0, 5])
    axes.set_ylim([0, 5])
    plt.show()

domain()
Run Code Online (Sandbox Code Playgroud)

不采取正面因素,1 + (1-x*x)**0.5因为它不会影响交叉点.

在此输入图像描述