绘制地板函数时 Pgfplots 跳转标记错误

绘制地板函数时 Pgfplots 跳转标记错误

由于某些奇怪的原因,以下代码给了我错误的情节

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
 \addplot+[jump mark left,samples at={2.5,5,...,20}] {floor(x/2.5)};
\end{axis}
\end{tikzpicture}
\end{document}

由此产生的情节

显然,例如在 处x=15,y 应该等于 6。这是一个错误吗?

添加:我注意到,floor()在这种情况下,该函数是多余的 - 该jump mark left选项的工作方式与 floor 函数一样,可以生成正确的图形。不过,这并不能证明上述错误示例的合理性。

答案1

我猜这是一个浮点舍入错误(尽管\pgfmathparse{floor(((5-2.5)*6)/2.5)}\pgfmathresult正确打印了 6.0)。使用 TeX 尺寸进行的计算精度较差。修复它的一种方法是向 floor 参数添加一个小数字:

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
 \addplot+[jump mark left,samples at={2.5,5,...,20}] {floor(x/2.5+0.0001)};
\end{axis}
\end{tikzpicture}
\end{document}

结果

相关内容