pgfplotstable:更改一些单元格内容

pgfplotstable:更改一些单元格内容

在此处输入图片描述

如果我想在单元格中出现“间隙”或单词(例如“零”),并且它的值等于 0,我该怎么做?

preproc/expr={##1==0 ? "111" : "##1"}有效,但类似preproc/expr={##1==0 ? "{}" : "##1"}preproc/expr={##1==0 ? "zero" : "##1"}无效。

\documentclass[border=2pt, varwidth]{standalone}
\usepackage{pgfplotstable}

\begin{document}
\pgfplotstableread{
1    1 
2    {}
3    0 
4    4
5    0
6    5
7    6
}\test

The Table:  \pgfplotstabletypeset[]{\test} \\

Actual: \pgfplotstabletypeset[
%string type,
columns/1/.style={
% Works fine
preproc/expr={##1==0 ? "111" : "##1"},
% Does not work:
%preproc/expr={##1==0 ? "{}" : "##1"},
%preproc/expr={##1==0 ? "zero" : "##1"},
},
]{\test} 
%
Target 1: \begin{tabular}{r r} 
1  &  1           \\
2  &  {}           \\
3  &  {}           \\ 
4  &  4           \\
5  &  {}           \\
6  &  5           \\
7  &  6           \\
\end{tabular}
%
Target 2: \begin{tabular}{r r} 
1  &  1           \\
2  &  {}           \\
3  &  zero           \\ 
4  &  4           \\
5  &  zero           \\
6  &  5           \\
7  &  6           \\
\end{tabular}

\end{document}

答案1

这将打印“缺失”,但不会更改数据。这里的关键是 [string type],因为默认是假设数字。请注意,pgfplots忽略缺失数据。

\documentclass[border=2pt, varwidth]{standalone}
\usepackage{pgfplotstable}
\usepackage{pgfplots}

\begin{document}
\pgfplotstableread[header=false]{
1    1
2    {}
3    0
4    4
5    0
6    5
7    6
}\test

The Table:  \pgfplotstabletypeset[string type,
  every head row/.style={output empty row},
  columns/1/.style={string replace={}{missing}}
  ]{\test} \\

\begin{tikzpicture}
  \begin{axis}
  \addplot table[x=0,y=1]{\test};
  \end{axis}
\end{tikzpicture}

\end{document}

相关内容