Tikz-Pfade beschriften

Tikz-Pfade beschriften

Ich versuche, eine einfache neuronale Netzwerkstruktur zu erstellen und habe Folgendes:

\def\layersep{2.5cm}
\begin{tikzpicture}[shorten >=1pt,->,draw=black!50, node distance=\layersep]
    \tikzstyle{every pin edge}=[<-,shorten <=1pt]
    \tikzstyle{neuron}=[circle,draw=black!80,thick,minimum size=17pt,inner
        sep=0pt]
    \tikzstyle{annot} = [text width=4em, text centered]

    \foreach \name / \y in {1,...,3}
        \path[yshift=0.5cm]
            node[neuron] (H-\name) at (\layersep,-\y cm) {$x_\y$};

    \node[neuron,pin={[pin edge={->}]right:$h_\theta(x)$}, right of=H-2] (O) {};

    \foreach \source in {1,...,3}
        \path (H-\source) edge (O);

\end{tikzpicture}

Beim Rendern entsteht Folgendes:

Ich möchte in der Lage sein, das zu beschriften \path, aberüberall wo ich hingesehen habespricht nur über die Beschriftung von \drawoder \node. Ich dachte, ich sollte hinzufügen können:

\path (H-\source) edge (O) {Label Text};

Oder setzen Sie das labelAttribut im Rand:

\path (H-\source) edge[label=Label Text] (O);

Aber es scheint nicht zu funktionieren.

Mir ist dieser Abschnitt aufgefallen:

\foreach \source in {1,...,3}
    \path (H-\source) edge (O);

legt die Kanten fest. Ich habe auch versucht, nodeinnerhalb der Schleife eine neue zu erstellen, war mir aber nicht sicher, wie ich sie relativ zur Kante positionieren sollte, da die Kante keine Kennung hat.

Vielen Dank für deine Hilfe!

Antwort1

Die Syntax der grundlegenden Tikz-Befehle finden Sie in einigen Tutorials. Um Beschriftungen hinzuzufügen, benötigen Sie ein node. Sie können beispielsweise Pfeile mit Beschriftungen haben, indem Sie

\draw[->] (H-\source) -- node[above]{a\source} (O);

oder

\path (H-\source) edge node[above]{a\source} (O);

Bildbeschreibung hier eingeben

\documentclass[border=2mm]{standalone}
\usepackage{tikz}
\begin{document}
\def\layersep{2.5cm}
\begin{tikzpicture}%
  [shorten >=1pt,->,draw=black!50, node distance=\layersep,
   every pin edge/.style={<-,shorten <=1pt},
   neuron/.style={circle,draw=black!80,thick,minimum size=17pt,inner
        sep=0pt},
   annot/.style = {text width=4em, text centered}
  ]
  \foreach \name / \y in {1,...,3}
     \node[neuron,yshift=0.5cm] (H-\name) at (\layersep,-\y cm) {$x_\y$};
  \node[neuron,pin={[pin edge={->}]right:$h_\theta(x)$}, right of=H-2] (O) {};
  \foreach \source in {1,...,3}
     \draw[->] (H-\source) -- node[above]{a\source} (O);
\end{tikzpicture}
\end{document}

Antwort2

Lassen Sie mich meine Kommentare in eine Antwort umwandeln:

zum Beispiel \path (H-\source) edge ["Label Text"] (O); (Anführungszeichenbibliothek erforderlich) oder \path (H-\source) edge node[above] {Label Text} (O); ... ist es das, wonach Sie suchen?

Betrachten Sie die ersten Möglichkeiten, die Bibliothek chainsund positioningdie Positionierung der Neuronen sowie die richtige Syntax hierfür. Ihr MWE wird:

\documentclass[tikz, border=2mm]{standalone}
\usetikzlibrary{chains, positioning, quotes}

\begin{document}
\def\layersep{12mm}
\begin{tikzpicture}[shorten >=1pt, ->, draw=black!50, 
           node distance = \layersep and 2*\layersep,
             start chain = going below,
   every pin edge/.style = {<-,shorten <=1pt},
           neuron/.style = {circle,draw=black!80, thick,
                            minimum size=17pt, inner sep=0pt,
                            on chain},
            annot/.style = {text width=4em, text centered},
every edge quotes/.style = {above,font=\footnotesize}
                    ]
\foreach \y in {1,2,3}
     \node (H-\y) [neuron] {$x_\y$};
\node (O) [neuron,pin={[pin edge={->}]right:$h_\theta(x)$}, 
      right=of H-2] {};
\foreach \y in {1,2,3}
     \draw[->] (H-\y) edge [above,"a\y"] (O);
\end{tikzpicture}
\end{document}

Bildbeschreibung hier eingeben

Ich bin ziemlich sicher, dass ich vor ein paar Tagen eine Antwort auf eine sehr ähnliche Frage geschrieben habe.

verwandte Informationen