在 pgfplots 中绘制域中有间隙的函数

在 pgfplots 中绘制域中有间隙的函数

我最近收到了绘制函数的帮助这里。我现在想删除图表的一部分。我想删除 -2<= x <= 1 的部分。当我将其注释掉时,pgfplots 会用直线填补空白。但是,我希望图表的那部分完全消失,并导致函数的域断开。这可能吗?

答案1

只需使用\addplot具有不同域的两个命令,这样您不想要的区域就会被排除。

\documentclass[tikz]{standalone}
\usepackage{pgfplots}
%\pgfplotsset{compat=1.8}
\begin{document}
\begin{tikzpicture}[
  declare function={
    func(\x)= (\x<=-2) * (\x*\x + 6*\x + 8)   +
     and(\x>-2, \x<=1) * (2 - \x - \x*\x)     +
     and(\x>1,  \x<=2) * (6 - 8*\x + 2*\x*\x) +
                (\x>2) * (-10 + 6*\x - \x*\x);
  }
]
\begin{axis}[
  axis x line=middle, axis y line=middle,
  ymin=-5, ymax=5, ytick={-5,...,5}, ylabel=$y$,
  xmin=-5, xmax=5, xtick={-5,...,5}, xlabel=$x$,
]
\pgfplotsinvokeforeach{-2, 1, 2}{
  \draw[dashed] ({rel axis cs: 0,0} -| {axis cs: #1, 0}) -- ({rel axis cs: 0,1} -| {axis cs: #1, 0});}
\addplot[blue, domain=-5:-2, smooth]{func(x)};
\addplot[blue, domain=1:5, smooth]{func(x)};
\end{axis}
\end{tikzpicture} 
\end{document}

在此处输入图片描述

相关内容