Texto em um gráfico no TikZ

Texto em um gráfico no TikZ

Eu tenho o seguinte código.

\begin{tikzpicture}
 [auto,
 vertex/.style={circle,draw=black!100,fill=black!100,thick,inner sep=0pt,minimum size=1mm}]
\node (v1) at ( 1,1) [vertex,label=left:$v_1$] {};
\node (v2) at ( 0,0) [vertex,label=left:$v_2$] {};
\node (v3) at ( 2,0) [vertex,label=right:$v_3$] {};
\draw [-] (v1) to (v2);
\draw [-] (v2) to (v3);
\draw [-] (v1) to (v3);
\draw [-] [loop below] (v1) to (v1);
\end{tikzpicture}

Agora, isso desenha meu gráfico perfeitamente com três vértices. Meu problema é que quero dar nomes às arestas v_1v_2,v_2v_3,v_1v_3,v_1v_1 como e_1,e_2,e_3,e_4 respectivamente. Esses nomes devem ser posicionados próximos às bordas. Além disso, quero que o TikZ coloque os nomes dessas arestas automaticamente, sem atrapalhar umas às outras e sem que eu especifique as posições. Qual é o melhor jeito de concluir isso? Acho que auto é usado para isso, mas não sei como.

Responder1

Algo assim?

\documentclass[tikz]{standalone}
\usetikzlibrary{automata}
\begin{document}
  \begin{tikzpicture}[auto, vertex/.style={circle,draw=black!100,fill=black!100, thick,
                inner sep=0pt,minimum size=1mm}]
\node (v1) at ( 1,1) [vertex,label=left:$v_1$] {};
\node (v2) at ( 0,0) [vertex,label=left:$v_2$] {};
\node (v3) at ( 2,0) [vertex,label=right:$v_3$] {};
\draw [-] (v1) --node[inner sep=0pt,swap]{$e_1$} (v2);
\draw [-] (v2) --node[inner sep=2pt,swap]{$e_2$} (v3);
\draw [-] (v1) --node[inner sep=0pt]{$e_3$} (v3);
\draw [-] [loop below] (v1) to node[inner sep=0pt]{$e_4$} (v1);
\end{tikzpicture}
\end{document}

insira a descrição da imagem aqui

informação relacionada