Как заполнить прямоугольник с двумя углами по функции

Как заполнить прямоугольник с двумя углами по функции

Я хотел бы иметь возможность применить то же самое на следующем рисунке для любой функции:

введите описание изображения здесь

Сейчас мой код выглядит так (это отредактированная версия какого-то поста здесь, в Tex.sx): Он полностью заполняет только область под кривой!

\documentclass[11pt,bezier]{article}
\usepackage{xstring}
\usepackage{collcell}
\usepackage{pgfplots}
\usetikzlibrary{patterns}
\begin{document}
\begin{figure}[ht!]
    \centering
    \begin{tikzpicture}
        \begin{axis}[xmin=-1,xmax=9,xlabel={Y},ymin=0,ymax=10] 
        \addplot[color=black,domain=-1:9,samples=100]
            {(-(x-3)^2+(x-3)^4-(x-1)^3+4)/40+5};
        \addplot[color=black,fill=lime,  domain=5.8:7,samples=100]
            {(-(x-3)^2+(x-3)^4-(x-1)^3+4)/40+5} \closedcycle;
        \end{axis}
    \end{tikzpicture}
    \end{figure}
\end{document}

решение1

Вы можете использовать относительные координаты и --cycle(вместо \closedcycle), чтобы получить:

\documentclass[border=2pt]{standalone}
\usepackage{pgfplots}

\begin{document}
    \begin{tikzpicture}
        \begin{axis}[xmin=-1,xmax=9,xlabel={Y},ymin=0,ymax=10] 
        \addplot[color=black,domain=-1:9,samples=100] {(-(x-3)^2+(x-3)^4-(x-1)^3+4)/40+5};
        \addplot[color=black,fill=lime,  domain=5.8:7,samples=100] 
            {(-(x-3)^2+(x-3)^4-(x-1)^3+4)/40+5} -- +(axis direction cs:-1.2,0)--cycle;
        \addplot[color=black,fill=cyan,  domain=7:5.8,samples=100] 
            {(-(x-3)^2+(x-3)^4-(x-1)^3+4)/40+5} -- +(axis direction cs:1.2,0)--cycle;
        \end{axis}
    \end{tikzpicture}
\end{document}

введите описание изображения здесь

Связанный контент