如何使用 fillbetween 填充形状和 y 轴之间?我发现了这篇文章:如何使用沿 y 轴的包间填充,但我完全搞不懂。我只是尝试了一个非常简单的例子,我在 y=0 和 y=4 之间填充。以下是我目前所拥有的:
\begin{tikzpicture}
\begin{axis}[
axis x line=middle, axis y line=middle,
ymin=-4, ymax=4, ylabel=$y$,
xmin=-4, xmax=4, xlabel=$x$,
domain=-pi:pi,samples=101, % added
]
\addplot[domain=-10:10,blue,name path=A] {x^2}; % actual curve
\addplot[name path=B, blue, domain = 1:4] {0}; % “fictional” curve
\addplot[gray!50] fill between[of=A and B,soft clip={domain=1:4}]; %filling
\end{axis}
\end{tikzpicture}
我知道这只会填充 x 轴,但我不知道如何简单地让它在 y 轴上工作。我对 LaTex 还很陌生,所以任何帮助我都非常感谢。
答案1
我不清楚您是否想要遮蔽曲线下方或上方的区域,因此我提供了两个选项。
\documentclass[border=3.14mm,tikz]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\usepgfplotslibrary{fillbetween}
\begin{document}
\begin{tikzpicture}
\begin{axis}[set layers,
axis x line=middle, axis y line=middle,
ymin=-4, ymax=20, ylabel=$y$,
xmin=-4, xmax=4, xlabel=$x$,
domain=-pi:pi,samples=101, % added
]
\addplot[domain=-10:10,blue,name path=A] {x^2}; % actual curve
\addplot[name path=B, draw=none, domain = -4:4] {0};
\addplot[name path=C, draw=none, domain = -4:4] {4};
\pgfonlayer{axis background}
\clip(-2,0) rectangle (2,4);
\fill [
gray!50,
intersection segments={of=A and B,
sequence={A0 -- A1 -- B*[reverse]},
},];
\fill [
orange!50,
intersection segments={of=A and C,
sequence={A1 -- B*[reverse]},
},];
\endpgfonlayer
\end{axis}
\end{tikzpicture}
\end{document}