Tikz 경로에 레이블 지정

Tikz 경로에 레이블 지정

간단한 신경망 구조를 만들려고 하며 다음을 갖습니다.

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

렌더링되면 다음이 생성됩니다.

\path라벨 을 붙이고 싶지만내가 본 모든 곳에서\drawa 또는 라벨링에 대해서만 설명합니다 \node. 나는 다음을 추가할 수 있어야 한다고 생각했습니다.

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

또는 label가장자리에서 속성을 설정합니다.

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

하지만 작동하지 않는 것 같습니다.

나는 이 부분을 깨닫습니다.

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

가장자리를 설정합니다. 또한 루프 내부에 새 생성을 시도했지만 node가장자리에 식별자가 없기 때문에 가장자리를 기준으로 위치를 지정하는 방법을 확신하지 못했습니다.

도와주셔서 정말 감사합니다!

답변1

일부 튜토리얼에서 기본 tikz 명령의 구문을 찾아보세요. 라벨을 추가하려면 node. 예를 들어, 다음을 사용하여 라벨이 있는 화살표를 가질 수 있습니다.

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

또는

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

여기에 이미지 설명을 입력하세요

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

답변2

내 의견을 답변으로 변환하겠습니다.

예를 들어 \path (H-\source) edge ["레이블 텍스트"] (O); (따옴표 라이브러리 필요) 또는 \path (H-\source) edge node[위] {Label Text} (O); ...이것이 당신이 찾고 있는 것인가요?

첫 번째 가능성인 라이브러리 chainspositioning뉴런 위치 지정 및 이에 대한 올바른 구문을 고려하면 MWE는 다음과 같습니다.

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

여기에 이미지 설명을 입력하세요

나는 며칠 전에 매우 비슷한 질문에 대한 답변을 썼다고 확신합니다.

관련 정보