我试图复制以下代码
但是,我很好奇,我是否可以随机添加字母 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}