如何改进这个表格?

如何改进这个表格?

我正在寻找改进下表布局的想法。

  • 有没有更好的方法来分离 ABC 指标和 XYZ 指标(除了为每个指标使用单独的表格)?
  • 我应该将算法行转换为列吗?
  • 我应该将数据集行转换为列吗?

我将非常感激任何想法,谢谢。

桌子

\documentclass{article}

\usepackage[margin=1in]{geometry}  
\usepackage{tabularx,ragged2e,booktabs}

\begin{document}

\begin{table*}[!ht]
        \caption{Evaluation results}
        \centering
        \setlength{\tabcolsep}{4pt}
        \begin{tabularx}{\textwidth}{>{\hsize=1.9\hsize\bfseries\RaggedRight}X!{\extracolsep{\fill}}*{6}{>{\centering\arraybackslash\hsize=0.48\hsize}X}}
                \toprule[1pt]\midrule[0.3pt]
                \multicolumn{7}{c}{\textbf{ABC Metrics}} \\ \midrule[0.3pt]
                \textbf{Algorithm}& \multicolumn{2}{c}{\textit{Algo 1}} & \multicolumn{2}{c}{\textit{Algo 2}} & \multicolumn{2}{c}{\textit{Algo 3}} \\
                \cmidrule(lr){2-3} \cmidrule(lr){4-5} \cmidrule(lr){6-7}%
                {Dataset} & $D_1$ & $D_2$ & $D_1$ & $D_2$ & $D_1$ & $D_2$ \\
                \addlinespace%
                {Matric 1} & 0 & 0 & 0 & 0 & 0 & 0 \\
                \addlinespace%
                {Matric 2} & 0 & 0 & 0 & 0 & 0 & 0 \\
                \addlinespace%
                {Matric 3} & 0 & 0 & 0 & 0 & 0 & 0 \\
                \addlinespace
                {Matric 4} & 0 & 0 & 0 & 0 & 0 & 0 \\
                \midrule
                \multicolumn{7}{c}{\textbf{XYZ Metrics}} \\ \midrule[0.3pt]
                \textbf{Algorithm}& \multicolumn{2}{c}{\textit{Algo 1}} & \multicolumn{2}{c}{\textit{Algo 2}} & \multicolumn{2}{c}{\textit{Algo 3}} \\
                \cmidrule(lr){2-3} \cmidrule(lr){4-5} \cmidrule(lr){6-7}%
                {Matric 5} & \multicolumn{2}{c}{0} & \multicolumn{2}{c}{0} & \multicolumn{2}{c}{0} \\ \addlinespace
                {Matric 6} & \multicolumn{2}{c}{0} & \multicolumn{2}{c}{0} & \multicolumn{2}{c}{0} \\
                \midrule[0.3pt]\bottomrule[1pt]
        \end{tabularx}
\end{table*}

\end{document}

答案1

我只修复了您列宽计算中的一些不一致之处。定义宽度的总和是 4.78。但它应该是一个整数。其他一切都是基于意见的......

我对您的表格代码的建议(根据意见进行了一些更改并简化了书写)是:

\documentclass{article}
\usepackage[margin=1in]{geometry}
\usepackage[skip=1ex]{caption}

\usepackage{ragged2e}
\usepackage{booktabs,tabularx}
\newcommand\mcc[1]{\multicolumn{2}{c}{#1}}

\begin{document}
    \begin{table}[!ht]
\caption{Evaluation results}
\centering
\begin{tabularx}{\textwidth}{
>{\hsize=0.4\hsize\bfseries\RaggedRight}X
*{6}{>{\hsize=0.1\hsize\centering\arraybackslash}X}}
    \toprule
\multicolumn{7}{c}{\textbf{ABC Metrics}} \\
    \midrule
\textbf{Algorithm}
    & \mcc{\textit{Algo 1}} & \mcc{\textit{Algo 2}} & \mcc{\textit{Algo 3}} \\
    \cmidrule(lr){2-3} \cmidrule(lr){4-5} \cmidrule(lr){6-7}%
Dataset     & $D_1$ & $D_2$ & $D_1$ & $D_2$ & $D_1$ & $D_2$ \\
    \midrule
 Matric 1   & 0 & 0 & 0 & 0 & 0 & 0 \\
    \addlinespace%
Matric 2    & 0 & 0 & 0 & 0 & 0 & 0 \\
    \addlinespace%
Matric 3    & 0 & 0 & 0 & 0 & 0 & 0 \\
    \addlinespace
Matric 4    & 0 & 0 & 0 & 0 & 0 & 0 \\
    \midrule
\multicolumn{7}{c}{\textbf{XYZ Metrics}} \\ \midrule[0.3pt]
\textbf{Algorithm}
    & \mcc{\textit{Algo 1}} & \mcc{\textit{Algo 2}} & \mcc{\textit{Algo 3}} \\
    \cmidrule(lr){2-3} \cmidrule(lr){4-5} \cmidrule(lr){6-7}%
{Matric 5} & \mcc{0} & \mcc{0} & \mcc{0} \\ 
    \addlinespace
{Matric 6} & \mcc{0} & \mcc{0} & \mcc{0} \\
    \bottomrule
\end{tabularx}
    \end{table}
\end{document}

这使:

在此处输入图片描述

答案2

一些一般性观察和评论:

  • 我不明白为什么您要使用 1 个tabularx环境来处理两个看起来没有太多联系的结构。我会使用两个独立的环境。

  • 由于似乎根本没有换行功能,我不明白为什么一tabularx开始要使用环境。为什么不使用环境tabular*?就此而言,为什么不使用tabular环境?

一些更具体的评论:

  • 使用大胆的和/或斜体在标题单元格中,这样做是为了弥补视觉结构不清晰的问题。如果采用这种方法,您很可能给人留下这样的印象:(a) 组织能力不强,(b) 认为可以冲人大喊大叫。不过,我认识的人非常不喜欢被人大喊大叫。您的经历可能有所不同……

  • 根据您提供的信息,该材料可以轻松地在两个独立的并行tabular环境中呈现。

以下解决方案尝试在不喊叫的情况下呈现材料,同时仍尝试在视觉上“开放”且吸引人。

在此处输入图片描述

附言:“matric” 是什么?

\documentclass{article}
\usepackage[margin=1in,letterpaper]{geometry}  
\usepackage[skip=0.5\baselineskip]{caption} % optional
\usepackage{array,booktabs}

\begin{document}
\begin{table}[!ht]
   \setlength\tabcolsep{10pt} % default: 6pt
   \caption{Evaluation results}   

   \begin{tabular}[t]{@{} l *{6}{c} @{}}
   \multicolumn{7}{@{}l}{ABC Metrics, for datasets $D_1$ and $D_2$} \\ 
   \toprule
   & \multicolumn{6}{c@{}}{Algorithm}\\
   \cmidrule(l){2-7}
   & \multicolumn{2}{c}{Algo 1} 
   & \multicolumn{2}{c}{Algo 2} 
   & \multicolumn{2}{c@{}}{Algo 3} \\
   \cmidrule(lr){2-3} \cmidrule(lr){4-5} \cmidrule(l){6-7}
   & $D_1$ & $D_2$ & $D_1$ & $D_2$ & $D_1$ & $D_2$ \\
   \midrule
   Matric 1 & 0 & 0 & 0 & 0 & 0 & 0 \\
   Matric 2 & 0 & 0 & 0 & 0 & 0 & 0 \\
   Matric 3 & 0 & 0 & 0 & 0 & 0 & 0 \\
   Matric 4 & 0 & 0 & 0 & 0 & 0 & 0 \\
   \bottomrule
   \end{tabular}
   \hspace{\fill}
   \begin{tabular}[t]{@{} l ccc @{}}
   \multicolumn{4}{@{}l}{XYZ Metrics} \\ 
   \toprule
   & \multicolumn{3}{c@{}}{Algorithm}\\ 
   \cmidrule(l){2-4}
   & Algo 1 & Algo 2 & Algo 3 \\
   \midrule
   Matric 5 & 0 & 0 & 0 \\ 
   Matric 6 & 0 & 0 & 0 \\ 
   \bottomrule
   \end{tabular}
\end{table}
\end{document}

答案3

我建议使用这种变体布局,其正确系数为\hsize=

\documentclass{article}
\usepackage[margin=1in]{geometry}
\usepackage[skip=1ex]{caption}
\usepackage[table, svgnames]{xcolor}

\usepackage{ragged2e}
\usepackage{booktabs,tabularx}
\newcommand\mcc[1]{\multicolumn{2}{c}{#1}}

\begin{document}

\begin{table}[!ht]
\caption{Evaluation results}
\centering
\setlength{\extrarowheight}{2pt}
\setlength{\belowrulesep}{0pt}
\begin{tabularx}{\textwidth}{
>{\hsize=2.8\hsize\bfseries\RaggedRight}X
*{6}{>{\hsize=0.7\hsize\centering\arraybackslash}X}}
    \toprule
 & \multicolumn{6}{c}{\textbf{Algorithm}} \\
    \cmidrule{2-7}
    & \mcc{\textit{Algo 1}} & \mcc{\textit{Algo 2}} & \mcc{\textit{Algo 3}} \\
\rowcolor{WhiteSmoke} ABC Metrics\hfill Dataset & $D₁$ & $D₂$ & $D₁$ & $D₂$ & $D₁$ & $D₂$ \\
 \addlinespace
 Metric 1 & 0 & 0 & 0 & 0 & 0 & 0 \\
    \addlinespace%
Metric 2 & 0 & 0 & 0 & 0 & 0 & 0 \\
    \addlinespace%
Metric 3 & 0 & 0 & 0 & 0 & 0 & 0 \\
    \addlinespace
Metric 4 & 0 & 0 & 0 & 0 & 0 & 0 \\
    \addlinespace
\rowcolor{WhiteSmoke} XYZ Metrics & & & & & & \\
    \addlinespace
{Metric 5} & \mcc{0} & \mcc{0} & \mcc{0} \\
    \addlinespace
{Metric 6} & \mcc{0} & \mcc{0} & \mcc{0} \\
    \bottomrule
\end{tabularx}
\end{table}

\end{document} 

在此处输入图片描述

相关内容