多个箱线图的自定义命令

多个箱线图的自定义命令

我必须在文档中包含很多箱线图,并希望使用自定义命令自动执行此操作。我希望能够编写如下内容:

\boxplots[
  range={1,2,3,4,5},
  questions={
    {
       label=How many years ago did you start?
       key=How many years   
    },
    {
       label=How many hours do you spend playing?  
    }
  }
]

如果问题列表中未提供关键参数,则应默认使用标签参数。该命令应如下所示(没有正确的 LaTeX 语法):

\newcommand{\boxplots}[2] {
  \begin{tikzpicture}
    \begin{axis} [
      xmin=MIN(#1),
      xmax=MAX(#1),
      xtick=#1
      ytick={1,...,LEN(#2)},
      yticklabels=
        \foreach reversed \q in #2
          \stepcounter{questioncounter}
          \textbf{Q.\thequestioncounter} {\q[label]}
    ]
      \foreach reversed \q in #2
        \addplot+[boxplot={box extend=0.5}]
          table [
            y={\q[key]}
          ]{\userstudyResults};
    \end{axis}
  \end{tikzpicture}
}

yticklabels 应该解析为

{
  \textbf{Q.2} How many hours do you spend playing?,
  \textbf{Q.1} How many years ago did you start?
}

我面临的问题:

  • 对作为参数提供的列表进行反向迭代
  • 计算作为参数提供的列表的最小值和最大值
  • 计算作为参数提供的列表的长度
  • 命名参数
  • 默认参数

谢谢你的协助!

相关内容