tikz 分离元素,而不是将它们绘制到一起

tikz 分离元素,而不是将它们绘制到一起

我正在使用 tikz 绘制如下图形:

如果我只使用其中一个,结果就很好:

      \begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=3cm,thick,main node/.style={circle,fill=white!20,draw,font=\sffamily\Large\bfseries}]

  \node[main node] (1) {v1};
  \node[main node] (2) [below left of=1] {v2};
  \node[main node] (3) [below right of=2] {v3};
  \node[main node] (4) [below right of=1] {v4};

  \path[every node/.style={font=\sffamily\small}]
    (1) edge node [left] {} (2)
    (2) edge node [right] {} (3)
    (3) edge node [right] {} (4)
    (4) edge node [left] {}(1);

\end{tikzpicture}

结果:

图片 1

在此处输入图片描述

另一个:

     \begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=3cm,thick,main node/.style={circle,fill=white!20,draw,font=\sffamily\Large\bfseries}]

  \node[main node] (1) {v1};
  \node[main node] (2) [right of=1] {v2};
  \node[main node] (3) [right of=2] {v3};

  \path[every node/.style={font=\sffamily\small}]
    (1) edge node [left] {} (2)
    (2) edge node [right] {} (3);


\end{tikzpicture}

结果:

在此处输入图片描述

但是如果在同一代码中将上述代码一起使用,我会得到这个奇怪的结果:

图片 3

在此处输入图片描述

所以这些图都混在一起了。我该如何将这些图分开呢?

谢谢!!!

答案1

如果“在同一个代码中一起使用”的意思是在同一tikzpicture环境中组合前两个图,那么问题就在于您没有v1在第二个图中为节点指定位置(结果,它被放在默认坐标处,这也恰好是v1第一张图片所在的位置)。

在第二个图中明确给出坐标v1。例如,绝对位置,

\node[main node] (1) at (<coordinate>) {v1};

或相对位置

\node[main node, right=of 4] (1) {v1};

完整代码

\documentclass[border=2pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning}

\begin{document}

\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=3cm,thick,main node/.style={circle,fill=white!20,draw,font=\sffamily\Large\bfseries}]

  \node[main node] (1) {v1};
  \node[main node] (2) [below left=of 1] {v2};
  \node[main node] (3) [below right=of 2] {v3};
  \node[main node] (4) [below right=of 1] {v4};

  \path[every node/.style={font=\sffamily\small}]
  (1) edge node [left] {} (2)
  (2) edge node [right] {} (3)
  (3) edge node [right] {} (4)
  (4) edge node [left] {}(1);

  \node[main node] (1) [right=of 4] {v1};
  \node[main node] (2) [right=of 1] {v2};
  \node[main node] (3) [right=of 2] {v3};

  \path[every node/.style={font=\sffamily\small}]
  (1) edge node [left] {} (2)
  (2) edge node [right] {} (3);
\end{tikzpicture}
\end{document}

输出

在此处输入图片描述


另请注意,我已将您的right of=...语法更改为right=of ...。请参阅PGF/TikZ 中“right of=”和“right=of”之间的区别更多细节。

相关内容