PGFPLOTS 限制通过未绘制的列从文件进行绘图

PGFPLOTS 限制通过未绘制的列从文件进行绘图

我有包含三列的数据:时间、x、y。现在,我想像这样在 xy 平面中绘制数据:

\addplot[] table[x expr={\thisrowno{1}}, y expr={\thisrowno{2}}] {test.csv};

但此外,我只想绘制时间满足特定条件的数据,例如仅绘制前 300 纳秒。

答案1

我花了一些时间才找到答案,所以我想在这里分享一下。这可以通过使用

\addplot[x filter/.expression={\thisrowno{0} <= 300e-9 ? nan : x}] table[x expr={\thisrowno{1}}, y expr={\thisrowno{2}}] test.csv};

(使用来自坐标过滤库

请注意返回 x 是如何nan丢弃整个数据点的。

更多类似这篇文章的内容pgfplots:从 csv 文件中的指定行开始绘图(对我来说根本不起作用)也可以写成

\pgfplotsset{
    discard if larger/.style n args={2}{
        x filter/.expression={
            \thisrowno{#1} < #2 ? nan : x
        }
    },
    discard if smaller/.style n args={2}{
        x filter/.expression={
            \thisrowno{#1} > #2 ? nan : x
        }
    }
}

进而

\addplot[discard if larger={0}{300e-9}] table[x expr={\thisrowno{1}}, y expr={\thisrowno{2}}] test.csv};

相关内容