Добавление веса ребер в TikZ с использованием синтаксиса \ draw

У меня есть следующий график с использованием TikZ:

\begin{tikzpicture}
        \tikzset{vertex/.style = {shape=circle,draw,minimum size=2em}}
        \tikzset{edge/.style = {->,> = latex'}}
        % Vertices
        \node[vertex] (s) at (0,0) {s};
        \node[vertex] (t) at (2,-2) {t};
        \node[vertex] (v) at (-2,-2) {v};
        \node[vertex] (w) at (2,-5) {w};
        \node[vertex] (u) at (-2,-5) {u};
        % Edges
        \draw[edge, ultra thick] (s) to (t);
        \draw[edge, ultra thick] (s) to (v);
        \draw[edge, ultra thick] (t) to (w);
        \draw[edge, ultra thick] (v) to (u);
        \draw[edge] (t) to (u);
        \draw[edge] (v) to (w);
\end{tikzpicture}

введите описание изображения здесь

Как лучше всего добавить веса ребер к этому графу, используя этот синтаксис?


person Chris B.    schedule 07.11.2019    source источник
comment
Можете ли вы указать, что вы имеете в виду, говоря о добавлении веса ребер?   -  person samcarter_is_at_topanswers.xyz    schedule 07.11.2019
comment
Отображает ли tex.stackexchange.com/questions/166083/ справка?   -  person Nico Haase    schedule 07.11.2019


Ответы (1)


Вы можете просто добавлять узлы в пути. Это можно сделать с помощью

\draw (x) -- (y) node [midway] {w} ;

если вы используете стандартный синтаксис для рисования краев. или с

\draw (x) -- to node[] {w} (y)  ;

если вы предпочитаете форму «к».

Нормальное положение узла - это точная середина линии, но вы можете добавить любой параметр, чтобы настроить положение узла (слева, справа, сверху, снизу или сдвиг по x / y).

Эти узлы также могут следовать ориентации кромки (наклонной). В этом случае параметры определяются относительно направления кромки, и вы в основном будете использовать верхнее или нижнее.

Вот пример с нормальным или наклонным отягощением. Я использовал как форму «к», так и «-».

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{arrows.meta}

\begin{document}

\begin{tikzpicture}[
  vertex/.style = {shape=circle,draw,minimum size=2em},
  edge/.style = {->,-Latex},
  ]
  % Vertices
  \node[vertex] (s) at (0,0) {s};
  \node[vertex] (t) at (2,-2) {t};
  \node[vertex] (v) at (-2,-2) {v};
  \node[vertex] (w) at (2,-5) {w};
  \node[vertex] (u) at (-2,-5) {u};
  % Edges
  \draw[edge, ultra thick] (s) -- (t) node[midway,right] {$w_{st}$}  ;
  \draw[edge, ultra thick] (s) to node[left] {$w_{sv}$} (v);
  \draw[edge, ultra thick] (t) to node[right] {$w_{tw}$} (w);
  \draw[edge, ultra thick] (v) to  node[left] {$w_{vu}$} (u);
  \draw[edge] (t) to node[above, xshift=8mm] {$w_{tu}$} (u);
  \draw[edge] (v) to node[above, xshift=-8mm]  {$w_{vw}$} (w);
\end{tikzpicture}
\hfill%
\begin{tikzpicture}[
  vertex/.style = {shape=circle,draw,minimum size=2em},
  edge/.style = {->,-Latex},
  ]
  % Vertices
  \node[vertex] (s) at (0,0) {s};
  \node[vertex] (t) at (2,-2) {t};
  \node[vertex] (v) at (-2,-2) {v};
  \node[vertex] (w) at (2,-5) {w};
  \node[vertex] (u) at (-2,-5) {u};
  % Edges
  \draw[edge, ultra thick] (s) -- (t) node[midway,above,sloped] {$w_{st}$}  ;
  \draw[edge, ultra thick] (s) to node[above,sloped] {$w_{sv}$} (v);
  \draw[edge, ultra thick] (t) to node[above,sloped] {$w_{tw}$} (w);
  \draw[edge, ultra thick] (v) to  node[below,sloped] {$w_{vu}$} (u);
  \draw[edge] (t) to node[above left, sloped] {$w_{tu}$} (u);
  \draw[edge] (v) to node[above right, sloped]  {$w_{vw}$} (w);
\end{tikzpicture}
\end{document}

введите описание изображения здесь

person Alain Merigot    schedule 07.11.2019