
Я пытаюсь найти способ затенить область между кривыми, но когда я пытаюсь кодировать в 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}
если это то, чего вы хотели...