我正在尝试使用 tikz 包来创建一个简单的多重图,它看起来应该像这样(在 MS Paint 中完成):
我使用 tikz 包编写了一个代码来制作非常类似的东西。如下所示:
但是我不知道如何明确表示节点 3 连接到自身。这是我的代码:
\begin{tikzpicture}
[scale=1,auto=left,every node/.style={circle,fill=blue!20}]
\node (n1) at (5,7) {1};
\node (n2) at (3,5) {2};
\node (n3) at (5,5) {3};
\node (n4) at (7,5) {4};
\node (n5) at (5,3) {5};
\foreach \from/\to in {n1/n3,n2/n3,n4/n3,n5/n3}
\draw (\from) -- (\to);
\end{tikzpicture}
如果有人能帮忙,我将不胜感激!
答案1
虽然topaths
库(默认加载)为我们提供了一些loop
样式,loop above right
但我们可以定义一种。
如果我们将every loop
(包含->, shorten >=1pt
)设置为空样式,我们也会删除箭头尖和缩短量。
我还擅自使用了positioning
库来进行节点的定位以及edge
操作符来连接节点。
代码
\documentclass[tikz]{standalone}
\usetikzlibrary{positioning}
\tikzset{
loop above right/.style={above right, out= 60, in= 30, loop},
loop above left/.style ={above left, out=150, in=120, loop},
loop below right/.style={below right, out=330, in=300, loop},
loop below left/.style ={below left, out=240, in=210, loop}}
\begin{document}
\begin{tikzpicture}[
auto=left,
every node/.style={circle, fill=blue!20, outer sep=+0pt},
every loop/.style=,
node distance=1cm]
\node (n1) {1};
\node[below=of n1] (n3) {3};
\node[below=of n3] (n5) {5};
\node[ left=of n3] (n2) {2};
\node[right=of n3] (n4) {4};
\path[thick] (n3) edge (n1)
edge (n2)
edge (n4)
edge (n5)
edge[loop above right] ();
\path[red] (n1) edge [loop left] ()
(n5) edge [loop right] ()
(n2) edge [loop below] ()
(n4) edge [loop above] ()
(n3) edge [loop above left] ()
edge [loop below left] ()
edge [loop below right] ();
\end{tikzpicture}
\end{document}