我制作了以下转换图
我想做几件事,在节点 1、2、3 上,我希望内部箭头没有重叠,这看起来很傻,而且如果节点 1 和 5 可以对齐,那么 5 向下移动或 1 向上移动都无所谓。我对 tikz 还很陌生,但希望你们中有人能帮忙。代码如下。
谢谢!
斯特芬
\documentclass[a4paper,oneside,article]{memoir}
\usepackage{tikz}
\usetikzlibrary{arrows}
\begin{document}
\begin{tikzpicture}[->,,>=stealth',shorten >=1pt,node distance=2cm,
thick,main node/.style={circle,draw,font=\sffamily\Large\bfseries}]
\node[main node] (1) {1};
\node[main node] (2) [below left of=1] {2};
\node[main node] (3) [below right of=1] {3};
\node[main node] (4) [right of=3] {4};
\node[main node] (5) [above of=4] {5};
\node[main node] (6) [right of=4] {6};
\path[every node/.style={font=\sffamily\small}]
(1) edge [bend right] node {} (2)
edge [bend right] node {} (3)
edge [loop above] node {} (1)
(2) edge [bend right] node {} (1)
edge [bend left] node {} (3)
edge [loop below] node {} (2)
(3) edge [bend right] node {} (1)
edge [bend left] node {} (2)
edge [loop below] node {} (3)
(4) edge [bend right] node {} (5)
edge node {} (3)
edge node {} (6)
edge [loop below] node {} (4)
(5) edge [bend right] node {} (4)
edge [loop above] node {} (5)
(6) edge [loop right] node {} (6)
;
\end{tikzpicture}
\end{document}
答案1
使用arrows.meta
而不是arrows
(显然已被弃用)隐身尖端的定义变为>={stealth}
。
为了避免箭头重叠,请编辑bend
选项,添加要影响的单个箭头的度数。例如,bend right/left=15
在这种情况下有效。
最后,如果你想对齐X和是轴,类型\node (n) at (<node> -| <node>) {};
,因此在您的情况下它变成\node[main node] (5) at (1 -| 4) {5};
。
输出
代码
\documentclass[margin=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}[
->,
>={Stealth[round]},
shorten >=1pt,
node distance=2cm,
thick,
main node/.style={circle,draw,font=\sffamily\Large\bfseries}]
\node[main node] (1) {1};
\node[main node] (2) [below left of=1] {2};
\node[main node] (3) [below right of=1] {3};
\node[main node] (4) [right of=3] {4};
\node[main node] (5) at (1 -| 4) {5};
\node[main node] (6) [right of=4] {6};
\path[every node/.style={font=\sffamily\small}]
(1) edge [bend right] node {} (2)
edge [bend right=15] node {} (3)
edge [loop above] node {} (1)
(2) edge [bend right=15] node {} (1)
edge [bend left=15] node {} (3)
edge [loop below] node {} (2)
(3) edge [bend right] node {} (1)
edge [bend left] node {} (2)
edge [loop below] node {} (3)
(4) edge [bend right] node {} (5)
edge node {} (3)
edge node {} (6)
edge [loop below] node {} (4)
(5) edge [bend right] node {} (4)
edge [loop above] node {} (5)
(6) edge [loop right] node {} (6);
\end{tikzpicture}
\end{document}