Мягкий зажим не работает для затененных областей между кривыми

Мягкий зажим не работает для затененных областей между кривыми

Я пытаюсь найти способ затенить область между кривыми, но когда я пытаюсь кодировать в LaTeX с помощью softclip, все выключается. Я не знаю, что делать.

Вот мой код:

\documentclass[tikz, border=2mm]{standalone}
\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
  \begin{axis}[
    grid=both,
    axis lines=middle,
    xmin=-2, xmax=5,
    ymin=-5, ymax=10,
    xlabel={$x$},
    ylabel={$y$},
    legend style={at={(0.5,-0.15)}, anchor=north},
    ]

    \addplot[blue, domain=-2:5, samples=100, name path=A] {x^2 - 2*x};
    \addlegendentry{$y = x^2 - 2x$}

    \addplot[red, domain=-2:5, samples=100, name path=B] {4*x - x^2};
    \addlegendentry{$y = 4x - x^2$}

    % Create a path for the shaded region
    \path[name path=zero] (0,0) -- (0,8);

    % Shade the region between the two functions in red
    \addplot[red, fill, opacity=0.3] fill between[of=A and B, soft clip={domain=0:3}] \closedcycle;

  \end{axis}
\end{tikzpicture}

\end{document}

решение1

Когда я пытаюсь запустить ваш код, я вижу это сообщение: ! Package pgfplots Error: 'name path' is undefined. Please load \usetikzlibrary {intersections} or \usepgfplotslibrary{fillbetween}.

Так что я это сделал. Я вставил \usepgfplotslibrary{fillbetween}в преамбулу. Теперь, кажется, это работает для меня идеально.

\documentclass[tikz, border=2mm]{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{fillbetween}
\begin{document}

\begin{tikzpicture}
  \begin{axis}[
    grid=both,
    axis lines=middle,
    xmin=-2, xmax=5,
    ymin=-5, ymax=10,
    xlabel={$x$},
    ylabel={$y$},
    legend style={at={(0.5,-0.15)}, anchor=north},
    ]

    \addplot[blue, domain=-2:5, samples=100, name path=A] {x^2 - 2*x};
    \addlegendentry{$y = x^2 - 2x$}

    \addplot[red, domain=-2:5, samples=100, name path=B] {4*x - x^2};
    \addlegendentry{$y = 4x - x^2$}

    % Create a path for the shaded region
    \path[name path=zero] (0,0) -- (0,8);

    % Shade the region between the two functions in red
    \addplot[red, fill, opacity=0.3] fill between[of=A and B, soft clip={domain=0:3}] \closedcycle;

  \end{axis}
\end{tikzpicture}

\end{document}

если это то, чего вы хотели...

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

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