如果这个问题与这个问题类似,我很抱歉使用 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
参数指定绘图的特定(部分)的域,并接收要绘制的函数。当在下面两个指令中使用时,它告诉添加在特定坐标处绘制对象soldot
和holdot
soldot
和holdot
分别定义为表示实心点和空心点。- 其它
\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}
结果: