绘制不连续函数

绘制不连续函数

如果这个问题与这个问题类似,我很抱歉使用 TikZ 绘制非连续函数事实上,为了在 $-5$ 和 $+5$ 之间绘制以下函数,通过突出显示 $(0, -2)$、$(1.1)$ 和 $(2.1)$ 不连续点:

\begin{align}
f(x)=
\begin{cases}
x &     if \ x\in]-\infty,0[,  \\
x-2&   if \ x\in[0,1[, \\
1&       if \ x\in[1,2],  \\
\dfrac{1}{x-2}&  if \ x\in]2,+\infty[.
\end{cases}
\end{align}

我模仿这个代码。不幸的是,我得到了一个错误。

NOTE: coordinate (1Y2.0e0],4Y0.0e0]) has been dropped because it is unbounded (
in y). (see also unbounded coords=jump). 
LaTeX Font Info:    External font `cmex10' loaded for size
(Font)              <7> on input line 22.
LaTeX Font Info:    External font `cmex10' loaded for size
(Font)              <5> on input line 22.

! Package tikz Error: Giving up on this path. Did you forget a semicolon?.

See the tikz package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.22 \end{axis}

我想知道是否可以使用 TiKz 包绘制该函数的图形。

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.6}
\pgfplotsset{soldot/.style={color=blue,only marks,mark=*}} \pgfplotsset{holdot/.style={color=blue,fill=white,only marks,mark=*}}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot[domain=-5:0,blue] {x};
\addplot[domain=0:1,blue] {x-2};
\addplot[domain=1:2,blue] {1};
\addplot[domain=2:5, blue]{1/(x-2)}
\draw[dotted] (axis cs:4,16) -- (axis cs:4,4);
\draw[dotted] (axis cs:6,6) -- (axis cs:6,-5);
\addplot[holdot] coordinates{(0,0)(-1,-1)(6,-5)};
\addplot[soldot] coordinates{(0,-2)(1,1)(1,2)};
\end{axis}
\end{tikzpicture}

\end{document}

感谢您的阅读。

欢迎任何帮助!

答案1

因此,错误有两个:你漏掉了一个分号,并且你输入了\dfrac错误的命令,并且同一行漏掉了一个;

;除该命令之外,\dfrac还有一个数学模式命令,它告诉LaTeX排版分数,就像处于显示模式一样,即使它是内联的。

这里你不想排版分数,而是指定函数值,因此不需要排版命令

所以它会变成:\addplot[domain=2:5, blue]{1/(x-2)};正如@Daleif 所建议的那样。

此外,要编写曲线,您应该能够理解命令用法。我会尝试总结它们,以防万一:

  • addplot只是告诉tikz绘制特定的指令。domain参数指定绘图的特定(部分)的域,并接收要绘制的函数。当在下面两个指令中使用时,它告诉添加在特定坐标处绘制对象soldotholdot
  • soldotholdot分别定义为表示实心点和空心点。
  • 其它\draw命令将不连续点相互连接起来。

如果你理解了这一点,那么绘制图表就只是调整参数的问题:

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.6}
\pgfplotsset{soldot/.style={color=blue,only marks,mark=*}} \pgfplotsset{holdot/.style={color=blue,fill=white,only marks,mark=*}}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot[domain=-5:0,blue] {x};
\addplot[domain=0:1,blue] {x-2};
\addplot[domain=1:2,blue] {1};
\addplot[domain=2:5, blue]{1/(x-2)};
\draw[dotted] (axis cs:0,0) -- (axis cs:0,-2);
\draw[dotted] (axis cs:1,-1) -- (axis cs:1,1);
\addplot[holdot] coordinates{(0,0)(1,-1)};
\addplot[soldot] coordinates{(0,-2)(1,1)(2,1)};
\end{axis}
\end{tikzpicture}

\end{document}

结果:

在此处输入图片描述

相关内容