使用 Tikz 和节点的 2d 网格

使用 Tikz 和节点的 2d 网格

我想要创建以下图表: 二维网格

但我想不通。我对 Tikz 和节点还很陌生,因此希望有一个简单的解决方案。

这是另一个网格但我不知道如何用彩色矩形而不是圆形来填充它,以及如何在左上方添加间隔的单行/列。此外,我更喜欢矩形而不是正方形。

任何帮助都非常感谢!解释越多越好,或者有任何关于如何制作这些更具 IT 问题的图表的优秀资源。

我的问题主要是我不知道这些图表的名称是什么,所以我找不到任何教程/示例。

问候

编辑:感谢大家提出的这些好建议!我尝试了所有建议,但还是坚持使用已接受的答案,因为它是最容易理解和重现的。

答案1

这个解决方案比较基础,不像 marmot 的解决方案那样可编程,但我认为它更容易理解。

\documentclass[tikz,border=2mm]{standalone}
\usetikzlibrary{matrix, positioning}

\begin{document}
\begin{tikzpicture}[font=\sffamily]
\matrix[matrix of nodes, nodes in empty cells, column sep=-\pgflinewidth, row sep=-\pgflinewidth,
    nodes = {minimum height=7mm, minimum width=1cm, anchor=center, draw, fill=red},
    column 1/.style={nodes={fill=orange}},
    row 1/.style={nodes={fill=green}},
    row 1 column 1/.style={nodes={draw=none, fill=none}},
    w/.style={fill=white},
    label=above:Backside Clusters,
    label={[rotate=90, anchor=south]left:Frontside Cluster}] (Clusters) {
        &[3mm]&1000&1100&&&&&&&&&&&&\\[3mm]
    900 &|[w]|&|[w]|&&&&&&&&&&&&&\\ 
        &|[w]|&|[w]|&|[w]|&&&&&&&&&&&&\\
        &&|[w]|&|[w]|&|[w]|&&&&&&&&&&&\\
        &&&|[w]|&|[w]|&|[w]|&|[w]|&&&&&&&&&\\
        &&&&|[w]|&|[w]|&|[w]|&|[w]|&|[w]|&&&&&&&\\
        &&&&&&&|[w]|&|[w]|&|[w]|&|[w]|&&&&&\\
        &&&&&&&&|[w]|&|[w]|&|[w]|&|[w]|&|[w]|&&&\\
        &&&&&&&&&|[w]|&|[w]|&|[w]|&|[w]|&|[w]|&&\\
        &&&&&&&&&&&|[w]|&|[w]|&|[w]|&|[w]|&\\
        &&&&&&&&&&&&|[w]|&|[w]|&|[w]|&|[w]|\\
        &&&&&&&&&&&&&&|[w]|&|[w]|\\
        };

     \node[font=\Huge\sffamily, above right=0pt of Clusters-10-3.south west] {Skipped};
     \node[font=\Huge\sffamily, below left=0pt of Clusters-3-14.north east] {Skipped};
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

\documentclass[tikz,border=3.14mm]{standalone}
\begin{document}
\begin{tikzpicture}[Xmax/.estore in=\Xmax,Xmax=15,Ymax/.estore in=\Ymax,Ymax=10,
Xstep/.initial=8mm,Ystep/.initial=4mm]
 \edef\LstX{,1000,1100,,,,,,,,,,,,} %make sure there are (at least) Xmax-1 commas
 \edef\LstY{900,,,,,,,,,,}%make sure there are (at least) Ymax-1 commas
 \foreach \X in {1,...,\Xmax}
 { 
 \draw[fill=green!70!black]
 (\X*\pgfkeysvalueof{/tikz/Xstep},{(\Ymax+1.8)*\pgfkeysvalueof{/tikz/Ystep}}) 
 rectangle ++ (-\pgfkeysvalueof{/tikz/Xstep},-\pgfkeysvalueof{/tikz/Ystep})
 node[midway]{\pgfmathparse{{\LstX}[\X-1]}\pgfmathresult};
 \foreach \Y in  {1,...,\Ymax}
  {\ifnum\X=1
  \draw[fill=orange]
 (-0.8*\pgfkeysvalueof{/tikz/Xstep},\Y*\pgfkeysvalueof{/tikz/Ystep}) 
 rectangle ++ (-\pgfkeysvalueof{/tikz/Xstep},-\pgfkeysvalueof{/tikz/Ystep})
 node[midway]{\pgfmathparse{{\LstY}[\Ymax-\Y]}\pgfmathresult};
  \fi
  \pgfmathtruncatemacro{\itest}{int(1.2*abs(\X+1.4*\Y-\Xmax))}
  \ifnum\itest>2
  \draw[fill=red] 
  (\X*\pgfkeysvalueof{/tikz/Xstep},\Y*\pgfkeysvalueof{/tikz/Ystep})
  rectangle ++ (-\pgfkeysvalueof{/tikz/Xstep},-\pgfkeysvalueof{/tikz/Ystep});
  \else
  \draw (\X*\pgfkeysvalueof{/tikz/Xstep},\Y*\pgfkeysvalueof{/tikz/Ystep})
  rectangle ++ (-\pgfkeysvalueof{/tikz/Xstep},-\pgfkeysvalueof{/tikz/Ystep});
  \fi
  }}
 \path (0.5,0.5)  node[above right,font=\Huge\sffamily] {Skipped};
 \path ({\Xmax*(\pgfkeysvalueof{/tikz/Xstep}-1)-0.5},
 {\Ymax*(\pgfkeysvalueof{/tikz/Ystep}-1)-0.5})  node[below left,font=\Huge\sffamily] {Skipped};
\end{tikzpicture} 
\end{document} 

在此处输入图片描述

答案3

使用默认表格:

\documentclass[border=2mm]{standalone}
\usepackage[table]{xcolor}
\usepackage{array}
\newcolumntype{P}{>{\columncolor{red!80}\centering}p{2em}}
\def\V{\multicolumn{1}{@{}|>{\cellcolor{white}}c@{}|}{}}
\def\W{\multicolumn{1}{>{\cellcolor{white}}c|}{}}
\def\G{\cellcolor{green!80}}
\def\Skipped{\makebox(0,0){\Huge\bfseries\put(0,39){Skipped}}}
\begin{document}

    \sffamily\footnotesize\tabcolsep=2pt
    \begin{tabular}{rr}
        & \begin{tabular}{|*{15}{P|}}
            \multicolumn{15}{c}{Backside Clusters}\\\hline
            \G & \G1000 & \G1100 &\G&\G&\G&\G&\G&\G&\G&\G&\G&\G&\G & \G\tabularnewline\hline
    \end{tabular}\\[8pt]
    \begin{tabular}{|>{\columncolor{orange!60}}c|}\hline
        900\\\hline\\\hline\\\hline~\\\hline~\\\hline~\\\hline~\\\hline~\\\hline~\\\hline~\\\hline~\\\hline
    \end{tabular}
&
    \begin{tabular}{|*{15}{P|}}\hline
    \V &\W &&&&&&&&&&&&&\\\hline
  \V&\W&\W&&&&&&&&&&&&\\\hline
    &\W&\W&\W&&&&&&&&&&&\\\hline
    &&\W&\W&\W&\W&&&&&&&&&\\\hline
    &&&\W&\W&\W&\W&\W&\Skipped&&&&&&\\\hline
    &&&&&&\W&\W&\W&\W&&&&&\\\hline
    &&&&&&&\W&\W&\W&\W&\W&&&\\\hline
    &&&&&&&&\W&\W&\W&\W&\W&&\\\hline
    &&&&&&&&&&\W&\W&\W&\W&\\\hline
    &&&&&&&&&&&\W&\W&\W&\W\\\hline
    &\Skipped&&&&&&&&&&&&\W&\W\\\hline
    \end{tabular}
\end{tabular}
\end{document}

在此处输入图片描述

相关内容