Pgfplotstable:格式化除标题行和标题列之外的所有单元格

Pgfplotstable:格式化除标题行和标题列之外的所有单元格

我找到了一些使用 PGFplotstable 为表格值分配颜色的代码,但不幸的是,它只适用于最上面一行是头行(postproc 会忽略)的表格。我还需要 postproc 忽略第一列 - 可能比较简单,但我就是找不到怎么做。

这是代码:

\pgfplotstableset{
    color cells/.style={
        col sep=comma,
        string type,
        postproc cell content/.code={%
                \pgfkeysalso{@cell content=\rule{0cm}{2.4ex}%
                \pgfmathsetmacro\y{min(100,max(0,abs(round(##1 * 0.5))))}%
                \ifnum##1<0\edef\temp{\noexpand\cellcolor{blue!\y}}\temp\fi%
                \ifnum##1>0\edef\temp{\noexpand\cellcolor{red!\y}}\temp\fi%
                \pgfmathtruncatemacro\x\y%
                \ifnum\x>50 \color{white}\fi%
                ##1}%
                }
    }
}

\begin{table}\caption{Correlation or something}
\centering
\pgfplotstabletypeset[color cells]{
a,b,c,d
x,-300,-200,-100
y,0,100,200
z,300,40,800
}
\end{table}

(原始出处为:使用 TikZ 绘制热图

代码不起作用,因为第一列中的值不是数字 - 我只是想忽略它们,让这些单元格保持原样。

答案1

啊哈,我找到了,其实很简单:我以属性 'columns/a/.style={reset style,string type}' 开始标签:

\pgfplotstabletypeset[color cells, columns/a/.style={reset styles,string type}]

其中“a”是我的第一列的名称!

希望这能帮助别人;)

相关内容