Моя цель — представить точность тестов, достигнутую моделями, обученными на наборах данных 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. Это очень хороший товар, и он доступен онлайн в открытом доступе. Необходимо воспользоваться макросом Ladite «Reed Me», чтобы просмотреть пакеты, необходимые для его использования (bigstruth, colortbl, multirow и т. д.).
С помощью этого инструмента вы создадите свою таблицу в Excel. Затем выберете и кликните на «преобразовать стол в латекс». Во-вторых, вы получите латексный код выбранной таблицы.
решение4
Когда мне нужно сделать такие таблицы, я использую Excel2latex. Это отличный макрос Excel, который автоматически воспроизводит код LaTeX таблицы Excel. Он отлично работает и доступен онлайн в открытом доступе. Вам нужно проверить «Read me» макроса, чтобы увидеть пакеты, необходимые для его использования (bigstruth, colortbl, multirow и т. д.).
С помощью этого инструмента вы создаете свою таблицу в Excel. Затем выбираете ее и нажимаете «конвертировать таблицу в LaTeX». За одну секунду он создает код LaTeX выбранной таблицы.