根据手册pgfplotstable
设置表格中整行或整列的颜色相当容易。但是,我只想设置位于某一行或某一列的一个元素的样式。
用于\pgfplotstablegetelem{<row>}{<col>}\of{<table>}
访问表格元素。
我可以根据元素的符号来设计元素的样式:columns/account1/.style={fonts by sign={}{\color{red}}}
。
如何在以下由行列坐标 (colB,2) 标识的示例中设置 22 的样式?如果我从包含纯数据的文件中加载数据,则此功能很有意义。
\pgfplotstabletypeset[col sep=&,row sep=\\,sci zerofill]{
colA & colB & colC \\
11 & 12 & 13 \\
21 & 22 & 23 \\
}
答案1
pgfplotstable 1.4.1 之前的版本仅支持行和列样式。但是,它允许查询\pgfplotstablerow
和\pgfplotstablecol
宏,因此您可以使用(诚然有点偏颇的)语法
\pgfplotstabletypeset[
columns/colB/.style={%
postproc cell content/.code={%
\ifnum\pgfplotstablerow=1
\pgfkeysalso{@cell content=\textbf{##1}}%
\fi
},
},
col sep=&,row sep=\\]{
colA & colB & colC \\
11 & 12 & 13 \\
21 & 22 & 23 \\
}
它所做的就是为整个列分配一个后处理器。但特定于列的后处理器会检查行索引,并仅对行索引 1(索引从 0 开始)应用操作。
似乎我忘记了这个特定功能。我刚刚向 pgfplotstable 添加了一个新功能,它以更简单的方式(通过定义every row <index> column <name or index>/.style
)实现了该特定应用程序。如果您经常需要这样的东西,您可能需要关注 pgfplots 不稳定版本pgfplots sourceforge 网页,我会在接下来的几天内上传修改内容。