根据大小自动着色数字

根据大小自动着色数字

科学演讲有自己的文化,通常以以下表格的形式报告结果

1.7333    1.6472    1.5418    1.4682    1.5740
1.1525    1.2878    1.2652    1.3511    1.5102
1.2181    1.1500    1.2220    1.2425    1.5699
0.9786    1.1051    1.1472    1.3096    1.6757
0.9569    0.9190    1.0433    1.2924    1.4867

行和列显然具有(几乎完美的)单调模式。现在对于肉眼来说,这不是捕捉信息的最快方法。

我希望绝对值较大的数字与较小的数字看起来有所不同(绿色与红色或亮与暗),以便模式立即变得清晰。

有没有办法用 LaTeX 来编程?

答案1

您可以使用包裹collcell根据数值处理条目。下面我已将R列类型定义为根据数值应用黑色百分比。

在此处输入图片描述

笔记:

  • 可以对此进行调整,根据数字的大小应用不同的颜色,也许这样会产生更好的效果。例如,根据数字所在的四分位数使用不同的颜色(<25% 使用灰色,25-50% 使用棕色,50-75% 使用黑色,>75 使用红色)。

代码:

\documentclass{article}
\usepackage{xcolor}
\usepackage{pgf}
\usepackage{collcell}

% This selects the amount of color to use
\newcommand*{\MinNumber}{0.5}%
\newcommand*{\MaxNumber}{1.8}%

\newcommand{\ApplyGradient}[1]{%
    \pgfmathsetmacro{\PercentColor}{100.0*(#1-\MinNumber)/(\MaxNumber-\MinNumber)}
    \textcolor{black!\PercentColor}{#1}
}
\newcolumntype{R}{>{\collectcell\ApplyGradient}{r}<{\endcollectcell}}

\begin{document}
\begin{tabular}{R R R R R}
1.7333 & 1.6472 & 1.5418 & 1.4682 & 1.5740 \\
1.1525 & 1.2878 & 1.2652 & 1.3511 & 1.5102 \\
1.2181 & 1.1500 & 1.2220 & 1.2425 & 1.5699 \\
0.9786 & 1.1051 & 1.1472 & 1.3096 & 1.6757 \\
0.9569 & 0.9190 & 1.0433 & 1.2924 & 1.4867 \\
\end{tabular}
\end{document}

答案2

我建议pgfplotstable。使用以下代码,您可以测试单元格的内容是否低于指定值\bordervalue(我取 1.4)。根据结果,数字将以绿色或红色打印。

目前还未测试输入是否为数字。所以请小心。

   postproc cell content/.style={@cell content={%
    \pgfmathparse{int(less(#1,\bordervalue))}
    \ifnum\pgfmathresult=1
       \color{red} #1
    \else
       \color{green!60!black} #1
    \fi

在此处输入图片描述

\documentclass[]{scrartcl}%
\usepackage{pgfplotstable}
\begin{document}
\def\bordervalue{1.4}
\pgfplotstabletypeset[row sep=\\,col sep=&,assume math mode=false,
   postproc cell content/.style={@cell content={%
    \pgfmathparse{int(less(#1,\bordervalue))}
    \ifnum\pgfmathresult=1
       \color{red} #1
    \else
       \color{green!60!black} #1
    \fi
}},]
{%
1.7333    & 1.6472    & 1.5418    & 1.4682    & 1.5740  \\
1.1525    & 1.2878    & 1.2652    & 1.3511    & 1.5102  \\
1.2181    & 1.1500    & 1.2220    & 1.2425    & 1.5699  \\
0.9786    & 1.1051    & 1.1472    & 1.3096    & 1.6757  \\
0.9569    & 0.9190    & 1.0433    & 1.2924    & 1.4867  \\
}
\end{document}

相关内容