하위 표의 행 제목 및 위치 캡션 간격을 지정하는 방법

하위 표의 행 제목 및 위치 캡션 간격을 지정하는 방법

나는 pdfLatex를 사용하여 3x3 혼동 행렬을 구성하려고 노력해 왔습니다. 지금까지의 출력은 코드와 함께 아래 이미지에 포함되어 있습니다.

행렬의 두 가지 측면에 문제가 있습니다.

먼저 행렬 측면을 따라 "실제 값"과 "왼쪽", "오른쪽" 및 "직선" 행 머리글 사이의 공간을 늘려야 하지만 지금까지는 제대로 할 수 없었습니다.

둘째, 두 번째 행렬의 맨 아래에 있는 하위 캡션 "(b) Part 2"를 왼쪽으로 이동하여 하위 캡션 "(a) Part 1과 같이 매트릭스의 중간 행에 정렬되도록 해야 합니다. "는 첫 번째 행렬의 경우입니다.

위의 두 가지 수정 사항을 어떻게 해결할 수 있나요?

최대한 코드를 깔끔하게 작성하려고 노력했습니다. 나는 꽤 새롭기 때문에 가능한 최선의 방법을 사용하지 않을 수도 있습니다. 개선에 관한 추가 조언을 주시면 감사하겠습니다.

감사합니다.

\begin{table}[h!]
    \begin{center}
    \setlength\tabcolsep{0pt}
    \caption{Confusion Matrix}
    \label{tab:table1}
    \begin{subtable}{0.49\linewidth}
        \begin{tabular}{c|c|c|c|c}
            \multicolumn{1}{c}{} & \multicolumn{1}{c}{} & \multicolumn{3}{c}{\bfseries Prediction outcome} \\
            \multicolumn{1}{c}{} & \multicolumn{1}{c}{} & \multicolumn{1}{c}{\textbf{Left}} & \multicolumn{1}{c}{\textbf{Straight}} & \multicolumn{1}{c}{\textbf{Right}}\\
            \multicolumn{1}{c}{\multirow{13}{*}{\rotatebox{90}{\parbox{1.1cm}{\bfseries \mbox{Actual Value}}}}} & \multicolumn{1}{c}{\multirow{-2}{*}{\rotatebox{90}{\parbox{1.1cm}{\textbf{Left}}}}} & \multicolumn{1}{c}{\MyBox{0}{ }} & \multicolumn{1}{c}{\MyBox{1}{ }} & \multicolumn{1}{c}{\MyBox{2}{ }}\\
            \multicolumn{1}{c}{} & \multicolumn{1}{c}{\multirow{1}{*}{\rotatebox{90}{\parbox{1cm}{\textbf{Straight}}}}} & \multicolumn{1}{c}{\MyBox{0}{ }} & \multicolumn{1}{c}{\MyBox{1}{ }} & \multicolumn{1}{c}{\MyBox{2}{ }}\\
            \multicolumn{1}{c}{} & \multicolumn{1}{c}{\multirow{-2}{*}{\rotatebox{90}{\parbox{1.1cm}{\textbf{Right}}}}} & \multicolumn{1}{c}{\MyBox{0}{ }} & \multicolumn{1}{c}{\MyBox{1}{ }} & \multicolumn{1}{c}{\MyBox{2}{ }}
        \end{tabular}
        \caption{Part 1}
    \end{subtable}
    \begin{subtable}{0.49\linewidth}
         \begin{tabular}{c|c|c|c|c}
             \multicolumn{3}{c}{\bfseries Prediction outcome} & \multicolumn{1}{c}{} \\
             \multicolumn{1}{c}{\textbf{Left}} & \multicolumn{1}{c}{\textbf{Straight}} & \multicolumn{1}{c}{\textbf{Right}} & \multicolumn{1}{c}{}\\
             \multicolumn{1}{c}{\MyBox{1000}{ }} & \multicolumn{1}{c}{\MyBox{1}{ }} & \multicolumn{1}{c}{\MyBox{2}{ }} & \multicolumn{1}{c}{\multirow{3}{*}{\rotatebox{270}{\parbox{1cm}{\textbf{Left}}}}} & \multicolumn{1}{c}{\multirow{9}{*}{\rotatebox{270}{\parbox{1.2cm}{\bfseries \mbox{Actual Value}}}}}\\
             \multicolumn{1}{c}{\MyBox{0}{ }} & \multicolumn{1}{c}{\MyBox{1}{ }} & \multicolumn{1}{c}{\MyBox{2}{ }} & \multicolumn{1}{c}{\multirow{-2}{*}{\rotatebox{270}{\parbox{-10cm}{\textbf{Straight}}}}} & \multicolumn{1}{c}{}\\
            \multicolumn{1}{c}{\MyBox{0}{ }} & \multicolumn{1}{c}{\MyBox{1}{ }} & \multicolumn{1}{c}{\MyBox{2}{ }} & \multicolumn{1}{c}{\multirow{1}{*}{\rotatebox{270}{\parbox{1.1cm}{\textbf{Right}}}}}  & \multicolumn{1}{c}{}
         \end{tabular}
         \caption{Part 2}
     \end{subtable}
     \end{center}
\end{table}

내 혼란 매트릭스

답변1

다음은 하위 테이블 중 하나에 대한 더 간단한 코드입니다. 다행히도 이는 귀하가 원하는 것과 일치해야 합니다.

\documentclass{article}
\usepackage{subcaption}
\usepackage{rotating, multirow}
\usepackage{graphicx}
\newcommand{\MyBox}[1]{{\parbox[c][1.4cm][c]{1.1cm}{#1}}}
\newcommand{\rotbox}[1]{ \rotatebox[origin = c]{90}{\makebox[0pt]{\bfseries#1}}}

\begin{document}

\begin{table}[h!]
\centering
\caption{Confusion Matrix}
\label{tab:table1}
\begin{subtable}{0.49\linewidth}
    \begin{tabular}{c@{\enspace }c|c|c|c|}
        \multicolumn{2}{c}{} & \multicolumn{3}{c}{\bfseries Prediction outcome} \\
        \multicolumn{2}{c}{} & \multicolumn{1}{c}{\textbf{Left}} & \multicolumn{1}{c}{\makebox[0pt]{\textbf{Straight}}} & \multicolumn{1}{c}{\textbf{Right}}\\[0.5ex]
\cline{3-5}
    & \rotbox{Left} & \MyBox{0} & \MyBox{1} & \MyBox{2} \\
\cline{3-5}
 \rotbox{Actual value} & \rotbox{Straight} & \MyBox{0} & \MyBox{1} & \MyBox{2} \\
\cline{3-5}
    & \rotbox{Right} & \MyBox{0} & \MyBox{1} & \MyBox{2} \\
\cline{3-5}
    \end{tabular}
    \caption{Part 1}
\end{subtable}
\end{table}

\end{document} 

여기에 이미지 설명을 입력하세요

관련 정보