使用 pgfplots 绘制数据时跳过“Inf”值

使用 pgfplots 绘制数据时跳过“Inf”值

我知道使用 pgfplots 你可以跳过“无界坐标”,但 latex 只接受“nan”、“inf”和“-inf”(实际上“nan”的大小写也不同)作为无界坐标。

我的数据包含大量“Inf”和“-Inf”值,因此 pgfplots 会给出错误。请参阅 MWE:

\documentclass{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{width=7cm,compat=1.11}

\begin{document}
\begin{tikzpicture}
\begin{axis}[unbounded coords=jump]
\addplot coordinates {
(0,0) (10,50) (20,Inf) (30,200)
(40,inf) (50,600) (60,NaN) (80,1000)
};
\end{axis}
\end{tikzpicture}

\end{document}

有什么方法可以告诉 latex 将“Inf”视为“inf”?我想我可以编写一个脚本将所有“Inf”转换为“inf”,但通过 latex 执行会更简洁、更容易。

答案1

您可以通过设置来定义Inf为别名:infdeclare function={Inf=inf;}

\documentclass{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{width=7cm,compat=1.11}

\begin{document}
\begin{tikzpicture}[declare function={Inf=inf;}]
\begin{axis}[unbounded coords=jump]
\addplot coordinates {
(0,0) (10,50) (20,Inf) (30,200)
(40,inf) (50,600) (60,NaN) (80,1000)
};
\end{axis}
\end{tikzpicture}

\end{document}

相关内容