Tikz 中的多维数组

Tikz 中的多维数组

我试图复制以下代码

使用 Tikz 绘制多维数组

但是,我很好奇,我是否可以随机添加字母 U 和零,而不是 0 和 1。有办法吗?我正在尝试用 0 和实用程序填充数组。另外,我希望数组面向另一个方向,就像我目前拥有的那样(下面的代码)。注释部分是尝试将节点放置在三维空间中

                \draw (0, 0, 0) -- (0, 0, 10) (4, 0, 0) -- (4, 0, 10);
        \foreach \z in {0, 5, 10} \foreach \x in {0,...,3}
        \foreach \y [evaluate={\b=random(0, 1);}] in {0,...,3}
        \filldraw [fill=white] (\x, \y, \z) -- (\x+1, \y, \z) -- (\x+1, \y+1, \z) --
        (\x, \y+1, \z) -- cycle (\x+.5, \y+.5, \z) node [yslant=tan(15)] {\b};
        \draw [dashed] (0, 4, 0) -- (0, 4, 10) (4, 4, 0) -- (4, 4, 10);
%       \draw [->] (0, 4.5, -1)  -- (4, 4.5, -1)   node [near end, above left] {legislators};
        \node [align=center, left] at (1,4.3,-.01) {$1$};   
        \draw [dashed] (1, 4.3, -.01)  -- (3.5, 4.3, -.01);   
        \draw [->] (1, 4.5, -.01)  -- (3.5, 4.5, -.01);   
        \node [align=center, left] at (4,4.3,-.01) {$N$} node [left] {legislators};
    %       \draw [->] (-1.35, 4, 0)  -- (-1.35, 0, 0)   node [midway, left] {status};


        %\draw [->] (6, 4.5, 1) -- (6, 4.5, 10) node [near end, above right] {proposed};

我的输出如下

此外,我需要在所有 3 个维度上添加标签(图像中有“立法者”,但位置不准确) 第一维度 - s1 .... s_G(SQ) 第二维度 - s'_1.......s'_G(Prop) 第三维度 - 1...........N(立法者)

答案1

如果您不想摆弄公式,那么请切换到具有名称的基于节点的网格。您可以类似地引用节点来放置节点。

\documentclass{article}
\usepackage{tikz}
\begin{document}

\begin{tikzpicture}
\pgfmathdeclarerandomlist{choices}{{U}{0}}
\foreach \z in {0, 5, 10}{
  \begin{scope}[xshift=\z*0.75cm]
    \foreach \x in {0,...,3}{
      \foreach \y in {0,...,3}{
        \node[fill=white,minimum size=1cm-\pgflinewidth,draw] (n-\x-\y-\z) 
             at (\x+.5,\y+.5,\z) {\pgfmathrandomitem{\mynum}{choices}\mynum};
      }
    }
  \end{scope}
}
\draw[blue,thick] (n-0-3-0.north west) -- (n-0-3-10.north west);
\draw[red,thick] (n-0-0-0.south west) -- (n-0-0-10.south west);
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容