请帮助解决多列/多行问题

请帮助解决多列/多行问题

我一直在寻找混淆矩阵的示例,我发现了一个需要修改的示例。以下是示例:

\documentclass[11pt]{article}
\usepackage{tikz}
\usepackage{multirow}
\begin{document}
\begin{tabular}{l|l|c|c|c}
\multicolumn{2}{c}{}&\multicolumn{2}{c}{Truediagnosis}&\\
\cline{3-4}
\multicolumn{2}{c|}{}&Positive&Negative&\multicolumn{1}{c}{Total}\\
\cline{2-4}
\multirow{2}{*}{Screening test}& Positive & $a$ & $b$ & $a+b$\\
\cline{2-4}
& Negative & $c$ & $d$ & $c+d$\\
\cline{2-4}
\multicolumn{1}{c}{} & \multicolumn{1}{c}{Total} & \multicolumn{1}{c}{$a+c$} & \multicolumn{1}{c}{$b+d$} &\multicolumn{1}{c}{$N$}\\
\end{tabular}
\end{document}

生成结果: 在此处输入图片描述

我所需要的基本上是删除“总计”列和行,并将矩阵大小设为 4x4。我想将左侧文本旋转 90 度。这就是我的意思(我发誓我用油漆做到了 :D):

在此处输入图片描述

提前非常感谢您!

答案1

这里有两种可能的解决方案。第一种(我认为或多或少)可以实现您想要的外观。它使用\rotatebox\multirow宏来排版一个旋转了 90 度的框,并使用\extrarowheight宏使表格看起来不那么拥挤,并且

第二种解决方案——我恰好更喜欢——取消了所有垂直线,使用更少的水平线,并使用该booktabs包为其余情况绘制间距合适的水平线。您的读者可能也会喜欢这样一个事实:他们不必伸长脖子。

在此处输入图片描述

\documentclass{article}
\usepackage{array}    % \extrarowheight macro
\usepackage{graphicx} % \rotatebox macro
\usepackage{multirow} % \multirow macro
\usepackage{booktabs} % for \toprule, \midrule, \bottomrule
\newcommand\mc[1]{\multicolumn{1}{c}{#1}} % shortcut macro
\begin{document}
\begin{table}
%%% first try
\setlength\extrarowheight{2pt}
\newlength\screen
\settowidth\screen{Screening~~~~~}
\newbox\screenbox
\sbox\screenbox{\parbox{\screen}{\centering Screening\\ test}}
\centering
\begin{tabular}{@{}l|l|c|c|c|c|}
\mc{} & \mc{} & \multicolumn{4}{c}{True diagnosis}\\
\cline{3-6}
\mc{} &  & Positive & Negative & Positive & Negative \\
\cline{2-6}
\multirow{4}{*}{\rotatebox{90}{\usebox\screenbox}}
& Positive & $a$ & $b$ & $c$ & $d$\\ \cline{2-6}
& Negative & $a$ & $b$ & $c$ & $d$\\ \cline{2-6}
& Positive & $a$ & $b$ & $c$ & $d$\\ \cline{2-6}
& Negative & $a$ & $b$ & $c$ & $d$\\ \cline{2-6}
\end{tabular}

%%% second try
\vspace*{1cm}
\begin{tabular}{@{}lcccc@{}}
\toprule
Screening test & \multicolumn{4}{c@{}}{True diagnosis}\\
\cmidrule(l){2-5}
& Positive & Negative & Positive & Negative \\
\midrule
Positive & $a$ & $b$ & $c$ & $d$\\ 
Negative & $a$ & $b$ & $c$ & $d$\\ 
Positive & $a$ & $b$ & $c$ & $d$\\ 
Negative & $a$ & $b$ & $c$ & $d$\\ 
\bottomrule
\end{tabular}
\end{table}
\end{document}

答案2

这是一种做法。我使用 makecell及其\makegapedcells命令,以便表格中的单元格不那么紧密。``multirow` 命令放在最后一行,带有垂直参数,以简化“筛选测试”的垂直放置。

\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{fourier}
\usepackage{heuristica}

\usepackage{array}
\usepackage{graphicx}
\usepackage{multirow}

\usepackage{makecell}
\setcellgapes{5pt}
\makegapedcells

\begin{document}

\begin{tabular}{*{2}{l|}*{4}{c|}}
\multicolumn{2}{c}{} & \multicolumn{4}{c}{True diagnosis} \\
\cline{3-6}
\multicolumn{2}{c|}{}& Positive & Negative & Positive & Negative \\
\cline{2-6}
& Positive & $a$ & $b$ & $a$ & $b$ \\
\cline{2-6}
& Negative & $c$ & $d$ & $c$ & $d$\\
\cline{2-6}
& Positive & $a$ & $b$ & $a$ & $b$ \\
\cline{2-6}
\multirow{-5}{*}{\rotatebox{90}{Screening test}}& Negative & $c$ & $d$ & $c$ & $d$\\
\cline{2-6}
\end{tabular}

\end{document} 

在此处输入图片描述

相关内容