如何绘制多个矩形

如何绘制多个矩形

我想绘制 50 个矩形,高度为 3,宽度为 1。这些矩形之间应该有空间。我还想用蓝色填充 1、5、7、10、16、22 号矩形,用绿色填充 2、14、35、44、46 号矩形,其他矩形用红色填充。

在 Tikz 中是否有使用 \foreach 语句的简单方法?或者还有其他简单的方法吗?我尝试过这样的方法:

\begin{figure}[!htb]
    \centering 
    \scalebox{0.32}{
        \begin{tikzpicture}
            
        

    \foreach \x in {0, 1, ..., 50 }
          \draw (\x,0) rectangle (\x,10);
          %\draw [draw=black] (\x,4) rectangle (0.5,0);
          %\draw (\x,0) rectangle (0.5,4);

        %\draw [Stealth-Stealth, color = blue, thin] (\x, 0.3) -- (\x, 6.8);
        
        
            
    \end{tikzpicture}
    }
    \caption{}
    
\end{figure}

答案1

\documentclass[tikz, border=1cm]{standalone}
\begin{document}
\begin{tikzpicture}
\foreach \x in {1,...,50}
\fill[red] (1.1*\x,3) rectangle (1.1*\x+1,0);
\foreach \x in {1,5,7,10,16,22}
\fill[blue] (1.1*\x,3) rectangle (1.1*\x+1,0);
\foreach \x in {2,14,35,44,46}
\fill[green] (1.1*\x,3) rectangle (1.1*\x+1,0);
\end{tikzpicture}
\end{document}

50 个彩色矩形组成的条纹

答案2

只是为了好玩,另一个版本带有矩阵和彩色单元格列表。

\documentclass[tikz, border=1cm]{standalone}
\usetikzlibrary{matrix}

\begin{document}
\begin{tikzpicture}[
    mymatrix/.style={matrix of nodes, nodes in empty cells,
        nodes={fill=red, anchor=center, minimum width=3mm, minimum height=8mm, inner sep=0pt, outer sep=0pt},
        column sep=1pt,
        },
    bluecell/.style={column #1/.style={nodes={fill=blue}}},      
    greencell/.style={column #1/.style={nodes={fill=green}}},        
    ]
\matrix[mymatrix, bluecell/.list={1,5,7,10,16,22}, greencell/.list={2,14,35,44,46}]
    {&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\\};
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容