LaTeX 水平条形图,条形渐变颜色

LaTeX 水平条形图,条形渐变颜色

我想创建一个这样的排名图表:

在此处输入图片描述

顶行显示排名(差 - 优秀),左列显示参数。现在我希望条形图看起来像图中一样,根据排名值 [0-100] 使用渐变着色,0 表示贫穷的,50 是平均的,100 为出色的。排名较差的用红色,排名一般的用黄色,排名靠前的用深绿色。颜色在中间融合,像渐变一样平滑过渡。

这可行吗?如果可行,有人可以提供指导吗?任何帮助都将不胜感激。

答案1

以下是将数据排版为“普通”表格的概念证明,以及一些蒂克兹滑块的代码。

根据OP的建议,使用RedDarkGreen(与svgnames彩色),其结果是:

在此处输入图片描述

这看起来很普通,特别是滑块中间没有黄色的迹象。我怀疑如果我们使用渐变,我们将永远不会在滑块中间看到黄色。我认为这里要使用的“标准颜色”是从蓝色(冷色)到红色(暖色)。使用BlueRed得到:

在此处输入图片描述

下面是使用 和 的另一种Yellow选择ForestGreen

在此处输入图片描述

最后,代码如下:

\documentclass{article}
\usepackage[svgnames]{xcolor}
\usepackage{tabularx}
\usepackage{tikz}

\newcommand\Mark[2][8.4]{%
  \rlap{\tikz[baseline=(current bounding box.south)]{
        \shade[left color=Yellow, right color=ForestGreen!#2!Yellow]
               (0,0) rectangle ++(#1*#2/100,0.3);}%
  }%
}

\begin{document}

\noindent
\begin{tabularx}{0.9\linewidth}{rXXXXX}
   &\textsf{Poor}&\textsf{Low}&\textsf{Average}&\textsf{High}
   &\textsf{Excellent}\\[2mm]
   \textsf{Quality}       & \Mark{100}\\[-4mm]
   \textsf{Innovation}    & \Mark{70}\\[-4mm]
   \textsf{Ease} of use   & \Mark{10}\\[-4mm]
   \textsf{Accessibility} & \Mark{90}\\[-4mm]
   \textsf{Support}       & \Mark{84}
\end{tabularx}

\end{document}

一些评论:

  • 我用了一个表格型环境,因为这是使列具有相同宽度的最简单的方法
  • X内部的表格型环境无法很好地适应,\multicolumn所以我习惯于\rlap{...}放置滑块。反过来,这又无法很好地适应行距,所以我通过在\\[-4mm]每行末尾添加手动调整来解决这个问题
  • \Mark命令用于创建颜色滑块。此命令的语法是\Mark[optional length]{mark from 0-100}。默认情况下,滑块的长度设置为8.4单位,我通过反复试验使滑块长度与表格宽度相匹配。颜色的选择是在宏的定义中设置的\Mark,因此可以轻松自定义以满足您的喜好:)

相关内容