圆圈上的 Tikz 节点、标签位置和节点放置

圆圈上的 Tikz 节点、标签位置和节点放置

抱歉,标题不好。我正在用 tikz 画一个图表,一开始画了一个圆,现在遇到了两个问题:

  1. 边缘上的标签似乎不在边缘的中心。它们似乎都比实际更靠近 v3 和 v5。
  2. 我可以将 v1 对齐到 v4 的左侧,但 v6 不在 v2 的“右侧”,而是在下面。这是为什么?为什么它不能位于 v2 的右侧,因为 v4 位于 v6 的左侧?

我的代码:

\documentclass[10pt,a4paper,twoside]{report}
%---------------------------------- tikz ---------------------------------------
\usepackage{tikz}
\usetikzlibrary{positioning,chains,fit,shapes,calc,arrows,patterns,external,shapes.callouts,graphs}
\begin{document}

\begin{tikzpicture} [node distance=3cm,]

    \graph [clockwise=4,radius=1.5cm] {
        v2/$v_2$ ,
        v3/$v_3$,
        v4/$v_4$,
        v5/$v_5$,
    };

    \graph {
        v1/$v_1$ [left of=v4],
        v6/$v_6$ [right of=v2],
    };

    \graph {
        (v5) -> [sloped,edge label=$-4$] (v2) ->[sloped,edge label=$2$] (v3) ->[sloped,edge label=$-5$] (v4) -> [sloped,edge label=$1$] (v5),
    };

\end{tikzpicture}
\end{document}

图像: 在此处输入图片描述

答案1

我建议使用\graph来建立节点,然后使用 的变体来\path连接和引用它们。正如@GonzaloMedina 所指出的,边缘标签的对齐问题似乎与 有关sloped。至于第二个问题,\graph旨在根据节点链和链组来定义节点,而不是相对于现有节点。我还要指出right ofleft of 已弃用

\node以下是使用和 的工作版本\draw

\documentclass[10pt,a4paper,twoside]{report}
%---------------------------------- tikz ---------------------------------------
\usepackage{tikz}
\usetikzlibrary{positioning,chains,fit,shapes,calc,arrows,patterns,external,shapes.callouts,graphs}
\begin{document}

\begin{tikzpicture} [node distance=3cm,]
    \graph [clockwise=4,radius=1.5cm] {
        v2/$v_2$,
        v3/$v_3$,
        v4/$v_4$,
        v5/$v_5$,
    };

%    \graph {
%        v1/$v_1$ [left= of v4],
%        v6/$v_6$ [right= of v2]
%    };
    \node[left= of v4] (v1) {$v_1$};
    \node[right= of v2] (v6) {$v_6$};

%   \graph {
%        v5 -> [sloped,$4$] v2 ->[edge label=$2$,sloped,inner sep=0pt,outer sep=0pt,anchor=south,midway] (v3) ->[sloped,edge label=$-5$] (v4) -> [edge label=$1$,sloped,inner sep=0pt,outer sep=0pt,anchor=south,midway] (v5),
%   };
    \draw[->] (v5)--(v2) node[midway,sloped,above]{$-4$};
    \draw[->] (v2)--(v3) node[midway,sloped,above]{$2$};
    \draw[->] (v3)--(v4) node[midway,sloped,below]{$-5$};
    \draw[->] (v4)--(v5) node[midway,sloped,below]{$1$};
\end{tikzpicture}
\end{document}

修正图像

相关内容