填充 y 轴之间

填充 y 轴之间

如何使用 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}

在此处输入图片描述

相关内容