我有一个关于 的问题pgfplots
。我有一个包含 xy 对的 CSV 文件。该 CSV 文件非常大(>10k 个条目)。
我现在想绘制x
vs y
,但只在某些指定的 x 坐标处。换句话说,我想使用原始 CSV 文件中精简的数据集。
例如,假设 x 在数据文件中的区间 [1,100] 内运行。我想用 x 坐标绘制一个图x1=0, x2=18, x3=76 and x4=89
。是否有机会自动从 CSV 文件中获取相应的 y 值,还是我需要从外部提取这些值(Excel、Octave 等)?
为了使其更加复杂:假设我在x=12.1
和处有一个 x 值x=12.2
。如果我们对 x=12.11 处的相应 y 值感兴趣,是否有机会使用最近的点位置(在本例中为 x=12.1)?
多谢!
答案1
这应该可以帮助你入门:
\documentclass{minimal}
\usepackage{csvsimple}
\usepackage{xifthen}
\newcommand{\execute}{\x,\y\par}
\begin{document}
\csvreader[head to column names]{test.csv}%
{}%empty block
{%x1=0, x2=18, x3=76 and x4=89
\ifthenelse{\x= 0}{\execute}{\relax}%
\ifthenelse{\x=18}{\execute}{\relax}%
\ifthenelse{\x=76}{\execute}{\relax}%
\ifthenelse{\x=89}{\execute}{\relax}%
}
\end{document}
它假设一个test.csv
文件有两列,第一列标记为x
,第二列标记为y
。
如果 X 不总是一个整数,并且您想要跳过间隙值,则需要在进行测试之前进行四舍五入。