Etiquetar caminos Tikz

Etiquetar caminos Tikz

Estoy intentando crear una estructura de red neuronal simple y tengo lo siguiente:

\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}

Que, cuando se renderiza, produce lo siguiente:

Quiero poder etiquetar el \path, perodondequiera que he miradohabla sólo de etiquetar a \drawo \node. Pensé que debería poder agregar:

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

O establezca el labelatributo en el borde:

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

Pero no parece funcionar.

Me doy cuenta de este segmento:

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

establece los bordes. También intenté crear un nuevo nodedentro del bucle, pero no estaba seguro de cómo colocarlo en relación con el borde, porque el borde no tiene un identificador.

¡Muchas gracias por su ayuda!

Respuesta1

Busque la sintaxis de los comandos básicos de tikz en algún tutorial. Para agregar etiquetas, necesita un archivo node. Por ejemplo, puedes tener flechas con etiquetas usando

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

o

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

ingrese la descripción de la imagen aquí

\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}

Respuesta2

Déjame convertir mis comentarios para responder:

por ejemplo \ruta (H-\fuente) borde ["Texto de etiqueta"] (O); (biblioteca de cotizaciones necesarias) o \path (H-\source) nodo de borde[arriba] {Label Text} (O); ... ¿es esto lo que buscas?

Considere las primeras posibilidades, la biblioteca chainsy positioningel posicionamiento de las neuronas y la sintaxis correcta para esto, su MWE se convierte en:

\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}

ingrese la descripción de la imagen aquí

Estoy bastante seguro de que hace unos días escribí una respuesta a una pregunta muy similar.

información relacionada