如何让 TikZ 在图形上正确显示不连续性?当我这样做时,它只会创建一个 V 形

如何让 TikZ 在图形上正确显示不连续性?当我这样做时,它只会创建一个 V 形

我正在尝试使用 TikZ 绘制函数 f(x)=(X+1) 的图像,当 x=2 时,该函数存在不连续性,方法是将 f 乘以 (x-2)/(x-2),如下所示:f(x)=(x+1)(x-2)/(x-2)。

当我尝试这样做时,Tikz 给了我一个错误,说我要求它除以 0,而我的意图是让它显示该域值的函数的不连续性。

有更多经验的人可以帮我解决这个问题吗?

提前致谢。

\documentclass{article}    
\usepackage{tikz}
\usepackage{pgfplots}
\usetikzlibrary{calc,angles,positioning,intersections,quotes,decorations.markings,arrows.meta}
\usepackage{amsmath}
\usepackage{amssymb}
\pgfplotsset{compat=1.18}

\begin{document}
\begin{tikzpicture}[scale=0.8,yscale=0.75]

\def \xmin {-3}
\def \xmax {3}
\def \ymin {-1.5}
\def \ymax {3}
    
\path[draw,->] (\xmin,0) -- (\xmax,0);
\path[draw,->] (0,\ymin) -- (0,\ymax);
\node[below] at (\xmax,0) {$x$};
\node[left] at (0,\ymax) {$y$};
\node[below left] at (0,0) {0};
    
\clip (\xmin,\ymin) rectangle (\xmax,\ymax);
\draw[domain=\xmin:\xmax,color=blue] plot ({\x}, {(\x-2)*(\x+1)/(\x-2)});
    
\end{tikzpicture}
\end{document}

答案1

说在 TikZ 中绘制线条和形状比在 PGFPlots 中更容易是没有道理的。PGFPlots 是在 TikZ 之上构建的,因此方式完全相同。PGFPlots 的级别高于 TikZ,而 PGF 是不需要的低级代码。

显然,我无法知道你在“你的书”中做了什么。这是不连续点处的一个圆圈:

\documentclass[tikz, border=1cm]{standalone} 
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document} 
\begin{tikzpicture}
\begin{axis}[
xmin=-3, xmax=3,
ymin=-1.5, xmax=3,
axis lines=center,
ticks=none,
]
\addplot[domain=-3:3, samples=2] {x+1};
\addplot[mark=*, fill=white, forget plot] coordinates{(2,3)};
\draw[red] (1,1) -- (3,2);
\end{axis}
\end{tikzpicture}
\end{document}

带有红线和圆圈标记的线性图

没有办法自动执行此操作。PGFPlots 和 Tikz 在有限数量的点集上评估函数samples,并在它们之间绘制线条(或曲线)。PGFPlots 和 Tikz 不会“查看”公式并得出任何不连续点之类的结论。评估结果为数字或-inf+infnan。如果评估结果不是数字,则 Tikz 将失败,而 PGFPlots 将丢弃该点和jumpdiscard坐标。没有自动方法可以保证在不连续点处尝试评估。

相关内容