我可以在 Tikz 中绘制带有十字标记的 x,y 线吗

我可以在 Tikz 中绘制带有十字标记的 x,y 线吗

我可以在 Tikz 中绘制如下图所示的图表吗?

在此处输入图片描述

我在长桌环境中尝试了以下内容。

\begin{longtable}{ p{.2\textwidth} |p{.1\textwidth} | p{.1\textwidth}| p{.1\textwidth}| p{.1\textwidth}|} 
    \hline
    H&&\checkmark&\checkmark&\checkmark\\
    \hline
    G&\checkmark&&&\\
    \hline
    F&&\checkmark&\checkmark&\\
    \hline
    E&\checkmark&\checkmark&\checkmark&\checkmark\\
    \hline
    &A&B&C&D\\
    \caption{Test}\label{ta:T}
\end{longtable}

其结果如下表。

在此处输入图片描述

不过,我想要一些像第一张图片那样的东西。

答案1

这几乎是标准的,您所需要的只是一个网格和一些标记的图。

\documentclass[tikz,border=3mm]{standalone}
\makeatletter
\newcommand{\myAlph}[1]{\@Alph{#1}}
\makeatother
\begin{document}
\begin{tikzpicture}
 \draw[dotted] (0,0) grid (4.5,4.5);
 \draw[stealth-stealth] (0,5) node[above]{$y$} |- (5,0) node[right]{$x$};
 \path foreach \X in {1,...,4}
 { (\X,0) node[below] {\myAlph{\X}} (0,\X) node[left] {\myAlph{\the\numexpr\X+4}}};
 \draw plot[only marks,mark=x,mark size=4pt] coordinates
 {(1,1) (2,1) (3,1) (4,1) (2,2) (3,2) (1,3) (2,4) (3,4) (4,4)};
\end{tikzpicture}
\end{document}

在此处输入图片描述

附录:真的只是为了好玩:纯 Ti 中的符号坐标Z. 它让我们知道什么时候解析什么。

\documentclass[tikz,border=3mm]{standalone}
\begin{document}
\begin{tikzpicture}[declare function={A=1;B=2;C=3;D=4;E=1;F=2;G=3;H=4;}]
 \draw[dotted] (0,0) grid (4.5,4.5);
 \draw[stealth-stealth] (0,5) node[above]{$y$} |- (5,0) node[right]{$x$};
 \path foreach \X in {A,...,D} { (\X,0) node[below] {\X}}
     foreach \X in {E,...,H} { (0,\X) node[left] {\X}};
 \draw plot[only marks,mark=x,mark size=4pt] coordinates
 {(A,E) (B,E) (C,E) (D,E) (B,F) (C,F) (A,G) (B,H) (C,H) (D,H)};
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

如果您想要一个比@Schrödinger's cat 更为详尽的答案:),那么这里您需要使用符号坐标:

在此处输入图片描述

\documentclass{article}
\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
    \begin{axis}[
        xlabel={$X$},
        ylabel={$Y$},
        axis lines=center,
        symbolic x coords={0,A,B,C,D},
        xmin={0}, xmax={D},
        xtick distance=1,
        symbolic y coords={0,E,F,G,H},
        ymin={0}, ymax={H},
        ytick distance=1,
        grid = both, grid style={dotted,black!50},
        every axis x label/.style={at={(current axis.south east)},right=1mm},
        every axis y label/.style={at={(current axis.north west)},above=1mm},
        enlargelimits={abs=30pt,upper},
        ]
        \addplot [only marks,mark=x,mark size = 4pt] coordinates {
            (A,E) (B,E) (C,E) (D,E) 
            (B,F) (C,F)
            (A,G) 
            (B,H) (C,H) (D,H)
        };
    \end{axis}
\end{tikzpicture}

\end{document}

相关内容