从 tikz 样式中删除节点名称

从 tikz 样式中删除节点名称

我有这个代码,已根据我的用例进行了调整。

我正在创建一堆节点并将它们连接在一起。问题是,图中出现了节点名称(即 h1,... 和 v1...)。

我想摆脱那个名字,在我的形象中拥有纯粹的圆圈。

那可能吗?

尽管我认为这是一个相当普遍的问题,但我还是在这里附上了代码。

谢谢你!

\begin{figure}[h]
\centering
\def\layersep{2cm} % Gap between visible & hidden units
\def\numvis{5} % Number if visible units
\def\numhid{4} % Number of hidden units
\begin{tikzpicture}[
    node distance=\layersep,
    line/.style={shorten >=2pt,shorten <=2pt,>=stealth}
    ]
    \tikzstyle{neuron}=[circle,fill=black!25,minimum size=21pt,inner sep=0pt];
    \tikzstyle{visible neuron}=[neuron];
    \tikzstyle{hidden neuron}=[neuron];
    \tikzstyle{annot}=[text width=4em];

    % Iterate over visible units
    \foreach \name / \y in {1,...,\numvis}
        \node[visible neuron] (V\name) at (\y,0) {$v_\y$};

    % Iterate over hidden units
    \foreach \name / \y in {1,...,\numhid}
        % Calculate the appropriate offset for the hidden unit based on the
        % number of visible units.
        \pgfmathparse{\y + (\numvis - \numhid) * 0.5}
        \node[hidden neuron] (H\name) at (\pgfmathresult, \layersep) {$h_\y$};

    % Draw a a line between each unit
    \foreach \source in {1,...,\numvis}
        \foreach \dest in {1,...,\numhid}
            \draw[line] (V\source) -- (H\dest);

    % use if/then/else to decide where to draw the labels
    \ifthenelse{\numvis > \numhid}
    {
        \node[annot,left of=V1, node distance=1.5cm] (hl) {Visible layer};
        \node[annot,above of=hl] {Hidden layer};
    }
    {
        \node[annot,left of=H1, node distance=1.5cm] (hl) {Hidden layer};
        \node[annot,below of=hl] {Visible layer};
    }
\end{tikzpicture}
\label{fig:rbm}
\caption{Restricted Boltzmann with \numvis{} visible units and \numhid{} hidden units.}
\end{figure}

答案1

如果从节点标签声明中删除$v_\y$,$h_\y$带括号的部分{<node label>},则节点将只填充而没有任何标签。

相关内容