我一直在寻找混淆矩阵的示例,我发现了一个需要修改的示例。以下是示例:
\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}