使用 pgfplotstable 选择要显示的行

使用 pgfplotstable 选择要显示的行

我有一个从文件中读取的表,我想仅显示在给定列中具有特定值的行。

这是一个 ECM:

\documentclass{minimal}
\usepackage{pgfplotstable}
\begin{document}
\pgfplotstableread{
  num       value
  1         2
  2         5
  1         3
  3         2
  1         4
  2         1
}\data
\pgfplotstabletypeset[row predicate/.code={%
  \ifnum\pgfplotstablegetelem{#1}{num}\of{\data}=1\relax
  \else\pgfplotstableuserowfalse\fi}]{\data}
\end{document}

我希望只看到 num 值为 1 的行。但是在编译时出现错误:

错误:缺少数字,视为零。

--- TeX 说 ---
 
                   \开始组
l.14 ...之后\pgfplotstableuserowfalse\fi}]{\data}

您是否知道如何做才能仅显示特定的行?

答案1

您快完成了!但是,宏\pgfplotstablegetelem不会“计算”您想要的值,而是将其存储在名为 的宏中\pgfplotsretval。因此,如果您像下面这样编写代码,您的代码就可以正常工作

\documentclass{article}
\usepackage{pgfplotstable}
\begin{document}
\pgfplotstableread{
  num       value
  1         2
  2         5
  1         3
  3         2
  1         4
  2         1
}\data
\pgfplotstabletypeset[row predicate/.code={%
  \pgfplotstablegetelem{#1}{num}\of{\data}
  \ifnum\pgfplotsretval=1\relax
  \else\pgfplotstableuserowfalse\fi}]{\data}
\end{document}

相关内容