如何在 pgfplots 中跳过一些数据点?

如何在 pgfplots 中跳过一些数据点?

我使用 Mathematica 导出数据点,并使用 pgfplots 绘制图形。数据文件包含一些 y 值不确定的点。mwe 可以通过以下方式给出

\documentclass{article}
\usepackage{pgfplotstable,pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\pgfplotstableread{
    x y
    1 2
    2 4
    3 Indeterminate
    4 7
}\mydata
    \begin{tikzpicture}
        \begin{axis}
            \addplot table {\mydata};
        \end{axis}
    \end{tikzpicture}
\end{document}

我想跳过这些点。我该怎么做?

答案1

您可以将表保存到文件中,表明您想要string replace={Indeterminate}{inf}(据我所知,读取表时它不起作用)然后从保存的文件中重新加载表。

换句话说,添加

\pgfplotstablesave[string replace={Indeterminate}{inf}]{\mydata}{mydata.dat}
\pgfplotstableread{mydata.dat}\mydata

之间\pgfplotstableread和之间tikzpicture似乎可以做你想做的事。

\documentclass{article}
\usepackage{pgfplotstable,pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\pgfplotstableread{
    x y
    1 2
    2 4
    3 Indeterminate
    4 7
}\mydata
\pgfplotstablesave[string replace={Indeterminate}{inf}]{\mydata}{mydata.dat}
\pgfplotstableread{mydata.dat}\mydata
    \begin{tikzpicture}
        \begin{axis}
            \addplot table {\mydata};
        \end{axis}
    \end{tikzpicture}
\end{document} 

在此处输入图片描述

相关内容