# How to place arrows horizontally above/below a table?

I am trying to draw arrows next to a table like this:

I was able to draw vertical arrows using the technique shown here:

$\left. \begin{tabular}{|c|c|c|} \hline medium & high & high \\ \hline low & medium & high \\ \hline low & low & medium \\ \hline \end{tabular} \right\uparrow \rotatebox[origin=c]{90}{Impact}$


However I have no idea how to draw the horizontal arrow on top of the table. This answer seems to use the same technique to draw horizontal arrows but I was unable to adapt it. It should also be possible to use TikZ but I would like to keep it simple.

It's been a while since you asked for this but I just stumbled on it.
Since you asked for a tikz solution, here's a simple one.

\documentclass[border=10pt]{standalone}
\usepackage{tikz}

\begin{document}

\def\spc{7pt} % Space between array and arrows, adjuts the arrows length automatically

\tikzset{myarrow/.style={-stealth,shorten >=\spc, shorten <=\spc}}

\begin{tikzpicture}

\node[inner sep=\spc] (t)
{
\begin{tabular}{|*{3}{c|}}
\hline medium & high & high \\
\hline low & medium & high \\
\hline low & low & medium \\
\hline
\end{tabular}
};

\draw[myarrow] (t.north west) -- (t.north east) node[midway,above] {Likelihood};
\draw[myarrow] (t.south east) -- (t.north east) node[midway,below,sloped] {Impact};
\end{tikzpicture}

\end{document}


• This solution is clean and simple. Thanks. Jan 13, 2021 at 17:30

Just with xrightarrow:

\documentclass{article}
\usepackage{amsmath, amssymb}
\usepackage{bigstrut}
\usepackage{array, rotating, cellspace}
\setlength{\cellspacetoplimit}{6pt}
\setlength{\cellspacebottomlimit}{6pt}

\begin{document}

$\xrightarrow[% \left.\begin{tabular}{|*{3}{>{\sffamily}Sc|}} \hline medium & high & high \\ \hline low & medium & high \\ \hline low & low & medium \\ \hline \end{tabular}% \enspace \right\uparrow\hskip-1em\rlap{\hskip 1.25em\rotatebox[origin=c]{90}{\sffamily Impact}}] {\textsf{\normalsize Likelihood}\bigstrut}$

\end{document}


Here is a solution with {NiceTabular} of nicematrix and Tikz.

\documentclass{article}
\usepackage{nicematrix,tikz}

\begin{document}
\begin{NiceTabular}{ccc}[hvlines,first-row,last-col,cell-space-limits=6pt]
\Cdots[line-style={solid,->}]^{\text{Likelihood}} \\
medium & high & high
& \Vdots[line-style={xshift=3mm,solid,<-}]^{\text{Impact}} \\
low & medium & high \\
low & low & medium \\
\end{NiceTabular}
\end{document}


You need several compilations (because nicematrix uses PGF/Tikz nodes).