在 tikz 中生成箭头标签

在 tikz 中生成箭头标签

对于我的论文,我想合并一些大量使用带标签箭头的 Tikz 图像。我想知道是否有一种有效的方法来生成这些图像,而不是逐个定义它们。不幸的是,我不太熟悉该foreach命令,我想它会在这里派上用场。下面显示了一个示例图像:

\documentclass{report}
\usepackage{pgfplots}
\usetikzlibrary{shapes}

\begin{document}

    \begin{figure}[h]
        \centering
        \resizebox{\textwidth}{!}{
            \begin{tikzpicture}[every node/.style={circle,fill=gray}]
            \node (n1) at (-2,10) {1};
            \node (n2) at (0,10) {2};
            \node (n3) at (2,10) {3};
            \node (n4) at (1,8) {4};
            \node (n5) at (-1,8) {5};
            \node (BS) at (3,7) {6};

            \foreach \from/\to in {n1/n2,n2/n1,n2/n3,n3/n2,n3/n4,n4/n3,n4/n5,n5/n4,n1/n5,n5/n1,n2/n5,n5/n2,n4/BS,BS/n4}
            \draw[->, bend right=22.5] (\from) to (\to);
            \end{tikzpicture}
        }
    \end{figure}

\end{document}

需要添加标签的图片

我现在要做的是$T_{ij}$给每个箭头添加标签,其中$i$是箭头的起点节点,$j$是终点节点。因此,例如,对于节点 1 和 2 之间的箭头,这将是 T_12 和 T_21。

答案1

经过一番努力,我终于得到了这个:

\documentclass{report}
\usepackage{pgfplots}
\usetikzlibrary{shapes}

\begin{document}

\begin{figure}[h]
    \centering
    \resizebox{\textwidth}{!}{
        \begin{tikzpicture}
        \node[circle,fill=gray] (1) at (-4,6) {1};
        \node[circle,fill=gray] (2) at (0,6) {2};
        \node[circle,fill=gray] (3) at (4,6) {3};
        \node[circle,fill=gray] (4) at (2,2) {4};
        \node[circle,fill=gray] (5) at (-2,2) {5};
        \node[circle,fill=gray] (6) at (6,0) {BS};

        \foreach \from/\to in {1/2,2/3,3/4,4/5,4/6,5/2,5/1}
        {\draw[->, bend right=22.5] (\from) to node[fill=white] {$T_{\from \to}$} (\to);
            \draw[->, bend right=22.5] (\to) to node[fill=white] {$T_{\to \from}$} (\from);
        }
        \end{tikzpicture}
    }

\end{figure}

\end{document}

现已添加标签的图片

这几乎就是我想要的结果。但是,我必须重命名我的节点才能做到这一点,否则标记命令将不起作用,因为它会为标签提供错误的索引。

相关内容