El clip suave no funciona para áreas sombreadas entre curvas

El clip suave no funciona para áreas sombreadas entre curvas

He estado tratando de encontrar una manera de sombrear el área entre las curvas, pero cuando intento codificar en LaTeX con softclip, todo se apaga. No se que hacer.

Este es mi código:

\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}

Respuesta1

Cuando intento ejecutar su código, veo este mensaje: ! Package pgfplots Error: 'name path' is undefined. Please load \usetikzlibrary {intersections} or \usepgfplotslibrary{fillbetween}.

Entonces hice eso. Inserté \usepgfplotslibrary{fillbetween}en el preámbulo. Ahora parece funcionar perfectamente para mí.

\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}

siempre y cuando esto sea lo que querías...

ingrese la descripción de la imagen aquí

información relacionada