但我想不通。我对 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}