您将如何设计下表?

您将如何设计下表?

我的目标是以简洁的方式展示在数据集 R1、R2 和 R3 上训练的模型所取得的测试准确率。为了实现这一目标,我分多个阶段训练模型,逐渐从三个数据集中引入更多数据,而不是一次性从整个数据集开始。 在此处输入图片描述

你对此有何看法?我不太确定是否可以避免重复每个模型的数据集名称。如果能提供任何建议,我将不胜感激

答案1

我的主要建议是您转置材料,主要是为了让您只有 4 或 5 列,而不是 10 列或更多。

在此处输入图片描述

\documentclass{article}
\usepackage{array,booktabs}
\usepackage[flushleft]{threeparttable}

\begin{document}

\begin{table}[h]
\centering
\begin{threeparttable}
\caption{Test accuracies achieved by models trained on datasets R1, R2, and~R3}
\begin{tabular}{@{} ll ccc @{}}
\toprule
\multicolumn{2}{@{}l@{}}{Model} & \multicolumn{3}{c@{}}{Training Phases} \\
\cmidrule(l){3-5} 
&& Phase 1 & Phase 2 & Phase 3 \\
\midrule
\multicolumn{2}{@{}l@{}}{Decision Tree} \\
& R1 & \dots & \dots & \dots \\
& R2 & \dots & \dots & \dots \\
& R3 & \dots & \dots & \dots \\
\addlinespace
\multicolumn{2}{@{}l@{}}{LSTU} \\
& R1 & \dots & \dots & \dots \\
& R2 & \dots & \dots & \dots \\
& R3 & \dots & \dots & \dots \\
\addlinespace
\multicolumn{2}{@{}l@{}}{Average} \\
& R1 & \dots & \dots & \dots \\
& R2 & \dots & \dots & \dots \\
& R3 & \dots & \dots & \dots \\
\bottomrule
\end{tabular}
\end{threeparttable}
\end{table}

\end{document}

附录为了解决 OP 的后续评论/请求:要在上面显示的表格中插入一个新的居中对齐列,并使用“基线”作为新标题的内容,您需要做的主要更改是替换

\begin{tabular}{@{} ll ccc @{}}

\begin{tabular}{@{} ll c ccc @{}}

接下来,更改

\cmidrule(l){3-5}

\cmidrule(l){4-6}

当然,不要忘记在表格中插入新第 3 列的内容——每行 1 个单元格。

在此处输入图片描述

\documentclass{article}
\usepackage{array,booktabs}
\usepackage[flushleft]{threeparttable}
\newcommand\ML[1]{\multicolumn{2}{@{}l}{#1}} % handy shortcut macro

\begin{document}

\begin{table}[h]
\centering
\begin{threeparttable}
\caption{Test accuracies achieved by models trained on datasets R1, R2, and~R3}
\begin{tabular}{@{} ll c ccc @{}}
\toprule
\ML{Model} & Baseline & \multicolumn{3}{c@{}}{Training Phases} \\
\cmidrule(l){4-6} 
&&& Phase 1 & Phase 2 & Phase 3 \\
\midrule
\ML{Decision Tree} \\
& R1 & \dots & \dots & \dots & \dots \\
& R2 & \dots & \dots & \dots & \dots \\
& R3 & \dots & \dots & \dots & \dots \\
\addlinespace
\ML{LSTU} \\
& R1 & \dots & \dots & \dots & \dots \\
& R2 & \dots & \dots & \dots & \dots \\
& R3 & \dots & \dots & \dots & \dots \\
\addlinespace
\ML{Average} \\
& R1 & \dots & \dots & \dots & \dots \\
& R2 & \dots & \dots & \dots & \dots \\
& R3 & \dots & \dots & \dots & \dots \\
\bottomrule
\end{tabular}
\end{threeparttable}
\end{table}

\end{document}

答案2

我认为重复名称并不是太糟糕。我想到了以下内容。根据您的数据,您可能希望使用包S中的列siunitx和/或将文本加粗(\textbf{...})。 在此处输入图片描述

\documentclass{article}
\usepackage{booktabs,multirow}

\begin{document}
    \begin{tabular}{llllllllll}
        \toprule
        \multirow{2}{*}{Training phases} & \multicolumn{3}{c}{Decision Tree} & \multicolumn{3}{c}{LST M} & \multicolumn{3}{c}{Average} \\ \cmidrule(lr){2-4}\cmidrule(lr){5-7}\cmidrule(lr){8-10}
                                         & R1     & R2     & R3              & R1     & R2     & R3      & R1     & R2     & R3        \\ \midrule
        Training phase 1                 & \ldots & \ldots & \ldots          & \ldots & \ldots & \ldots  & \ldots & \ldots & \ldots    \\
        Training phase 2                 & \ldots & \ldots & \ldots          & \ldots & \ldots & \ldots  & \ldots & \ldots & \ldots    \\
        Training phase 3                 & \ldots & \ldots & \ldots          & \ldots & \ldots & \ldots  & \ldots & \ldots & \ldots    \\ \bottomrule
    \end{tabular}
\end{document}

答案3

当我完成这些表时,您可以使用 Excel2latex。这是一个强大的 Excel 宏,允许自动将 LATEX 代码转换为 Excel 表格。市场表现非常好,并且可以在线以开放存取的方式获取。请参阅附加宏的“阅读我”以查看其使用所需的包(bigstruth、colortbl、multirow 等)。

使用上述工具,您可以在 Excel 上构建您的表格。接下来,您可以选择并点击“将表格转换为乳胶”。其次,您将获得所选表格的 Latex 代码。

答案4

当我需要制作这样的表格时,我会使用 Excel2latex。这是一个很棒的 Excel 宏,可以自动重现 Excel 表格的 LaTeX 代码。它工作得很好,并且可以在 Open Access 中在线获取。您必须查看宏的“自述文件”才能查看使用它所需的软件包(bigstruth、colortbl、multirow 等)。

使用此工具,您可以在 Excel 中创建表格。然后选择它并单击“将表格转换为 LaTeX”。一秒钟内,它会生成所选表格的 LaTeX 代码。

相关内容