我有以下代码:
\begin{tikzpicture}
\begin{axis} [
axis lines = {center},
width = {0.6\linewidth},
ylabel = {$y$},
xlabel = {$x$},
ytick distance = {2},
minor y tick num = {1}
]
\addplot [
mark = none, domain= -3:4
]
{abs(x)};
\end{axis}
\end{tikzpicture}
这将生成以下图像,请注意x=0
函数图上有一个奇怪的“断点”。可能是什么原因造成的?我该如何消除它?
我注意到如果我使用带有条件的函数也会发生此问题:
{x<0 ? -x+5 : x-2};
该区域附近x=0
发生了奇怪的断裂。
答案1
不奇怪,考虑一下函数值的计算位置,通过设置mark = x
:
默认样本数为 25,从 -3 到 4 的 25 个样本会在 处产生一个样本,-0.0833
在 处产生下一个样本0.20833
。不对称导致了您看到的问题。
如果您设置样本数量和域,以便您获得一个正好位于零处的样本,那么应该没问题。使用域-3:4
,samples=8
或samples=15
例如将为您提供一个位于零处的样本。或者,对于这种特定情况,您可以设置samples at={-3,0,4}
:
完整代码
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis} [
axis lines = {center},
width = {0.6\linewidth},
ylabel = {$y$},
xlabel = {$x$},
ytick distance = {2},
minor y tick num = {1}
]
\addplot [
mark = none, samples at={-3,0,4}
]
{abs(x)};
\end{axis}
\end{tikzpicture}
\end{document}