我有包含三列的数据:时间、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};