我最近收到了绘制函数的帮助这里。我现在想删除图表的一部分。我想删除 -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}