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が、私が見たところどこでも\drawは、または にラベルを付けることについてのみ説明しています\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 ["Label Text"] (O); (引用符ライブラリが必要) または \path (H-\source) edge node[above] {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}

ここに画像の説明を入力してください

確か、数日前に非常によく似た質問に対する回答を書いたと思います。

関連情報