我对 LaTeX 还很陌生(就像昨天才学的一样),对分数方程也很陌生(九年级)。当我尝试使用 pgfplots 在 LaTeX 中绘制一个方程时,我得到了以下结果:
但是,当我在 Desmos 和其他一些软件中绘制它时,这一行x=0
消失了:
这是什么原因?这只是 pgfplots 所做的事吗?绘制它从数学上来说正确吗?如果它错了,我该如何修复它?
顺便说一下这是我的代码:
\begin{tikzpicture}
\begin{axis}[
xmin=-10, xmax=10, ymin=-10, ymax=10,
axis lines = middle,
xlabel = \(x\),
ylabel = {\(f(x)\)},
grid = both,
axis equal
]
\addplot [
domain=-15:15,
samples=100,
color=red,
]
{-3+(12/x)};
\addlegendentry{\(-3+\frac{12}{x}\)}
\end{axis}
\end{tikzpicture}
答案1
PGFplots 通常绘制一条连续的线,该线由使用给定函数计算出的坐标列表连接而成。可以使用选项指定坐标的数量samples
,这意味着如果您声明samples=4
,您将获得四个坐标,然后将它们连接到一条(之字形/有角度的)线。样本/坐标越多,绘制的线就越平滑。
但是,您展示的函数是不连续的。对于不连续函数,您应该unbounded coords=jump
向axis
环境添加选项,以允许跳过(即暂时停止绘制)PGFplots 计算的坐标NaN
(不是数字),例如,除以 0 就是这种情况。
现在,如果你以这样一种方式设置数字,samples
以至于 PGFplots 不会精确地计算坐标X= 0,跳过 NaN 值对您没有太大帮助,因为在 PGFplots 计算的坐标列表中不存在具有 NaN 值的坐标。因此,您应该确保您的样本大小使得其中一个值恰好命中X= 0,对于您的函数,任何奇数都是如此。因此,例如,101 可以,但 100 不可以。
因此,以下将给出没有垂直线的所需输出:
\documentclass[border=10pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=-10, xmax=10, ymin=-10, ymax=10,
axis lines=middle,
xlabel={\(x\)},
ylabel={\(f(x)\)},
grid=both,
axis equal
]
\addplot [
domain=-15:15,
samples=101,
color=red,
unbounded coords=jump,
] {-3+(12/x)};
\addlegendentry{\(-3+\frac{12}{x}\)}
\end{axis}
\end{tikzpicture}
\end{document}