我有这张图表:
我想添加节点来指定某些箭头和无向边的权重。边 (A)(r) 的容量应为 = \infty
,并且某些无向边的节点应具有一些关联的数字。
我通过分离无向箭头来编码边((n1) edge (n2)
对无向边使用符号,\draw [->]
对有向边使用)。这样做的问题是,对于箭头,我无法将代码更改为类似 的内容(n1) edge node[MyStyle]{T} (n2)
,也无法将其写入无向边集中,因为这会在相同节点之间绘制两个单独的边。
我怎样才能以简单的方式调整此代码以获得我想要的结果?
\documentclass{article}
\usepackage{tikz}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{setspace}
\begin{document}
\begin{center}
\begin{tikzpicture}
[scale=1.2,auto=left, every node/.style={ circle, fill=blue!20, minimum size=2.5mm, inner sep=2pt}
]
\tikzset{My Style/.style={scale=0.8, black,fill=white,opacity=.2,text opacity=1, minimum size=0.5cm, }}
\tikzset{>=latex}
\node [fill = white, draw = black] (n1) at (0, 4){A};
\node [rectangle] (n2) at (1, 4){r};
\node [rectangle] (n3) at (2, 5){p};
\node [rectangle] (n4) at (3.5, 5){q};
\node [rectangle] (n5) at (3.5, 3.5){s};
\node [fill = white, draw = black] (n6) at (5, 4){B};
\path
(n2) edge[bend left = 15] (n3)
(n3) edge (n4)
(n4) edge (n5)
(n2) edge[bend right = 15] (n5);
\draw [->] (n1) edge (n2) (n4) edge[bend left = 15] (n6) (n5) edge[bend right = 15] (n6);
\end{tikzpicture}
\captionof{figure}{}
\end{center}
\end{document}
谢谢
答案1
之后添加带有坐标的节点肯定是不是这是一个好主意,因为它们不会遵循您在原始图表上所做的任何更改。
相反,您可以使用以下结构:\path (n1) edge node{content} (n2);
如下面的代码所示。
请注意,您不必分别绘制没有箭头的边和有箭头的边。将[->]
后面的内容添加edge
到您的路径中就足以选择哪一个应该带箭头。
我还定义了scopes
允许您使用不同种类的,node styles
而不必到处写它们。现在您应该能够根据需要自定义图片。
\documentclass{article}
\usepackage{tikz}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{setspace}
\begin{document}
\begin{center}
\begin{tikzpicture}[>=latex,scale=1.5,auto=left]
\begin{scope}[every node/.style=
{fill=blue!20,
minimum size=2.5mm,
inner sep=2pt}]
\node [circle,fill = white, draw = black] (n1) at (0, 4){A};
\node (n2) at (1, 4){r};
\node (n3) at (2, 5){p};
\node (n4) at (3.5, 5){q};
\node (n5) at (3.5, 3.5){s};
\node [circle,fill = white, draw = black] (n6) at (5, 4){B};
\end{scope}
\begin{scope}[every node/.style={inner sep=1pt}]
\path
(n1) edge[->] node {$\infty$} (n2)
(n2) edge[bend left = 15] node{$4$} (n3)
(n3) edge (n4)
(n4) edge (n5)
(n2) edge[bend right = 15] node {$-8$}(n5)
(n4) edge[->,bend left = 15] (n6)
(n5) edge[->,bend right = 15] (n6);
\end{scope}
\end{tikzpicture}
\captionof{figure}{}
\end{center}
\end{document}
答案2
您可以只添加新节点:
\node [fill = white, scale= 0.6] (v1) at (0.5, 4.1){$\infty$};
\node [fill = white, scale= 0.6, rotate = -25] (v2) at (4.25, 4.84){$\infty$};
\node [fill = white, scale= 0.6] (v3) at (4.24, 3.72){$0$};