내 Tikz 그래프 가장자리의 가중치로 일부 숫자를 표시하고 싶습니다. 가중치가 없는 그래프는 다음과 같습니다.
\begin{figure}[!ht]
\begin{tikzpicture}[shorten >=1pt, auto, node distance=3cm, ultra thick]
\tikzstyle{node_style} = [circle,draw=blue,fill=blue!20!,font=\sffamily\Large\bfseries]
\tikzstyle{edge_style} = [draw=black, line width=2, ultra thick]
\node[node_style] (v1) at (-2,2) {2};
\node[node_style] (v2) at (2,2) {3};
\node[node_style] (v3) at (4,0) {6};
\node[node_style] (v4) at (2,-2) {4};
\node[node_style] (v5) at (-2,-2) {5};
\node[node_style] (v6) at (-4,0) {1};
\draw[edge_style] (v1) edge (v2);
\draw[edge_style] (v2) edge (v3);
\draw[edge_style] (v3) edge (v4);
\draw[edge_style] (v4) edge (v5);
\draw[edge_style] (v5) edge (v6);
\draw[edge_style] (v6) edge (v1);
\draw[edge_style] (v5) edge (v1);
\draw[edge_style] (v5) edge (v2);
\draw[edge_style] (v4) edge (v2);
\end{tikzpicture}
\end{figure}
웹에서 이것저것 찾아보았으나 \draw
그래프에서 사용하고 있는 명령인 edge 명령을 사용하여 가중치를 표시하는 항목을 찾지 못했습니다.
내 문제를 해결하는 방법을 제안해 주실 수 있나요?
답변1
모서리 옆에 레이블을 추가하려면 구문을 사용하십시오 edge node {some text}
. 예를 들어 TikZ 매뉴얼 섹션 3.11의 두 번째 튜토리얼을 참조하세요.줄 옆에 텍스트 추가.
선의 반대편에 노드를 배치하려면 를 사용하십시오 edge node[swap] {some text}
.
또한 더 이상 사용되지 않는 것으로 간주되므로 아래와 같이 스타일을 옵션에 \tikzstyle
사용하거나 추가해야 합니다 . 보다\tikzset
tikzpicture
TikZ 스타일을 정의하려면 \tikzset 또는 \tikzstyle을 사용해야 합니까?
다음은 동일한 그래프를 생성하는 세 가지 방법입니다. 그 중 하나는 Alain이 의견에서 제안한 것입니다.
\documentclass[tikz]{standalone}
\begin{document}
% first method
\begin{tikzpicture}[shorten >=1pt, auto, node distance=3cm, ultra thick,
node_style/.style={circle,draw=blue,fill=blue!20!,font=\sffamily\Large\bfseries},
edge_style/.style={draw=black, ultra thick}]
\node[node_style] (v1) at (-2,2) {2};
\node[node_style] (v2) at (2,2) {3};
\node[node_style] (v3) at (4,0) {6};
\node[node_style] (v4) at (2,-2) {4};
\node[node_style] (v5) at (-2,-2) {5};
\node[node_style] (v6) at (-4,0) {1};
\draw[edge_style] (v1) edge node{1} (v2);
\draw[edge_style] (v2) edge node{2} (v3);
\draw[edge_style] (v3) edge node{3} (v4);
\draw[edge_style] (v4) edge node{4} (v5);
\draw[edge_style] (v5) edge node{5} (v6);
\draw[edge_style] (v6) edge node{6} (v1);
\draw[edge_style] (v5) edge node{7} (v1);
\draw[edge_style] (v5) edge node{8} (v2);
\draw[edge_style] (v4) edge node{9} (v2);
\end{tikzpicture}
% Second method
\begin{tikzpicture}[shorten >=1pt, auto, node distance=3cm, ultra thick]
\begin{scope}[every node/.style={circle,draw=blue,fill=blue!20!,font=\sffamily\Large\bfseries}]
\node (v1) at (-2,2) {2};
\node (v2) at (2,2) {3};
\node (v3) at (4,0) {6};
\node (v4) at (2,-2) {4};
\node (v5) at (-2,-2) {5};
\node (v6) at (-4,0) {1};
\end{scope}
\begin{scope}[every edge/.style={draw=black,ultra thick}]
\draw (v1) edge node{1} (v2);
\draw (v2) edge node{2} (v3);
\draw (v3) edge node{3} (v4);
\draw (v4) edge node{4} (v5);
\draw (v5) edge node{5} (v6);
\draw (v6) edge node{6} (v1);
\draw (v5) edge node{7} (v1);
\draw (v5) edge node{8} (v2);
\draw (v4) edge node{9} (v2);
\end{scope}
\end{tikzpicture}
% Third method
\begin{tikzpicture}[shorten >=1pt, auto, node distance=3cm, ultra thick,
edge_style/.style={draw=black, ultra thick}]
\foreach [count=\i] \x/\y/\t in {-2/2/2, 2/2/3, 4/0/6, 2/-2/4, -2/-2/5, -4/0/1}
\node [circle,draw=blue,fill=blue!20!,font=\sffamily\Large\bfseries]
(v\i) at (\x,\y) {\t};
\foreach \i/\j/\t in {1/2/1, 2/3/2, 3/4/3, 4/5/4, 5/6/5, 6/1/6, 5/1/7, 5/2/8, 4/2/9}
\draw [edge_style] (v\i) edge node{\t} (v\j);
\end{tikzpicture}
\end{document}