如何为表格中的每一行创建 5 级李克特图的堆积条形图?

如何为表格中的每一行创建 5 级李克特图的堆积条形图?

我想创建一个表格,以 5 级李克特图的形式表示调查的响应,每个问题都包含该表格。表格应如下所示。[堆叠条形样本表

答案1

这种类型的图形非常简单,您可以将其绘制为一系列彩色\rule命令。此命令有两个必需参数:长度和高度。您可以将长度作为宏参数给出,并将高度固定为 10pt。因此,您需要一个包含五个参数的宏,每个线段一个。

在下面的代码中,我添加了一个可选的第一个参数,用于表示整个条形图的宽度\textwidth,该参数用于\resizeboxgraphicx包中进行缩放。我已将此可选参数的默认值设置为0.5\textwidth,这实际上对于边距来说有点太大,因此您应该试验一下适合您的文档的默认值。下面示例中的第三行显示了如何使用可选参数来获取较小的条形图。

然后,该行将构建为一行三列的表格。第一列是第二和第三个参数的总和,第三列是第五和第六个参数的总和,中间一列是一系列规则,其长度为第二到第六个参数的值。

梅威瑟:

\documentclass{article}
\usepackage{xcolor}
\usepackage{graphicx}
\usepackage[left=1in,right=1in]{geometry}
\newcommand{\likertpct}[6][0.5]{%
\begin{tabular}{rcr}
\the\numexpr#2+#3\relax\% &
\resizebox{#1\textwidth}{\height}{%
\color{blue}\rule{#2mm}{10pt}\color{cyan}\rule{#3mm}{10pt}\color{lightgray}\rule{#4mm}{10pt}\color{yellow}\rule{#5mm}{10pt}\color{orange}\rule{#6mm}{10pt}%
} &
\the\numexpr#5+#6\relax\%\\
\end{tabular}%
}
\begin{document}
\noindent
\begin{tabular}{l|l}
12 What do you think about unicorns? & \likertpct{12}{14}{8}{9}{57}\\
13 How important is pineapple on a pizza? & \likertpct{43}{44}{4}{4}{5}\\
14 How important is this bar? & \likertpct[0.3]{12}{14}{8}{9}{57}\\
\end{tabular}

\vspace{1em}
\textcolor{blue}{\rule{7pt}{7pt}} Very important %
\textcolor{cyan}{\rule{7pt}{7pt}} Important %
\textcolor{lightgray}{\rule{7pt}{7pt}} Moderately important %
\textcolor{yellow}{\rule{7pt}{7pt}} Slightly important %
\textcolor{orange}{\rule{7pt}{7pt}} Not important at all
\end{document}

结果:

在此处输入图片描述

相关内容