Intento dibujar mi mapa y me quedo atascado al dibujar lo siguiente \
- dibujando un bucle arriba de 1 a 1
- bucle de dibujo hacia abajo de -1 a -1
- dibujando curva arriba de la flecha desde 2 y terminando en 3 y curvando hacia abajo la flecha de 3 y terminando en 2
- dibujando una flecha doblada arriba desde -2 y terminando en -3 y una flecha doblada hacia abajo desde -3 y terminando en -2
- También dibujé una "flecha" de 3 a -4 y otra de 4 a -3 pero como hacer que aparezcan como una flecha de dos puntas que las conecta. Lo siento, todavía soy un estudiante de leTEX e intenté muchas cosas sin suerte. Este es mi intento y ¿podrías ayudarme y mirar también mi dibujo con la mano?
\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage[english]{babel}
\usepackage{pgf,tikz} % for a sample picture that is included below
\usetikzlibrary{arrows}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\definecolor{uuuuuu}{rgb}{0.26666666666666666,0.26666666666666666,0.26666666666666666}
\tikzset{graph-1/.style = {
line cap = round,
line join = round,
> = triangle 45,
x=0.37cm, y=0.37cm,
every node/.append style = {inner ysep=2mm}
}
}% end of tikzset
\begin{figure}[ht]
\centering
\begin{tikzpicture}[graph-1]
\foreach \x in {0, 2, 4}
\foreach \x/\label in {0/\scriptstyle1, 2/\scriptstyle2, 4/\scriptstyle3, 6/\scriptstyle4, 8/\scriptstyle5}
\draw[fill=uuuuuu] (\x,1.5) circle (1.3pt) node[above] {$\label$};
%
\foreach \x/\label in {0/\scriptstyle-1, 2/\scriptstyle -2, 4/\scriptstyle-3, 6/\scriptstyle-4, 8/\scriptstyle-5}
\draw[fill=uuuuuu] (\x,-1.5) circle (1.3pt) node[below] {$\label$};
\foreach \x in {4}
\draw (\x,1.5) -- (\x+2,-1.5);
\foreach \x in {6}
\draw (\x,1.5) -- (\x-2,-1.5);
%
%\foreach \x in {0} [it does not work to draw a loop]
%\draw [uuuuuu,->,gray, loop above] (\x) edge (\x)
%\draw [uuuuuu] (\x) -- (\x)
%\draw (\x) -- (\x)
%
\node[left] at (-.3,0) {$\pi=$};
\end{tikzpicture}
\end{figure}
\end{document}
Respuesta1
Solución posible:
Deberías usar el Tik adecuadozcomandos si desea crear nodos con etiquetas, es decir: nodos con etiquetas. Luego podrás dibujar fácilmente flechas de un nodo al otro. Además, no tiene mucho sentido utilizar un foreach
bucle sólo para un único comando.
Modifiqué tu código. Los dos foreach
bucles crean los nodos y les dan los nombres t0
,,,, y , etc.t2
t4
t6
t8
b0
b2
Quizás quieras dibujar las flechas de manera diferente.
\documentclass[12pt]{article}
\usepackage{pgf,tikz}
\usetikzlibrary{backgrounds}
\usetikzlibrary{arrows}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\definecolor{uuuuuu}{rgb}{0.26666666666666666,0.26666666666666666,0.26666666666666666}
\tikzset{graph-1/.style = {
> = triangle 45,
x=0.37cm, y=0.37cm }
}% end of tikzset
\begin{figure}[ht]
\centering
\begin{tikzpicture}[graph-1]
\foreach \x/\label in {0/\scriptstyle1, 2/\scriptstyle2, 4/\scriptstyle3, 6/\scriptstyle4, 8/\scriptstyle5}
\node[fill=uuuuuu,inner sep=1.3pt,circle,label=above:{$\label$}] at (\x,1.5) (t\x) {};
\foreach \x/\label in {0/\scriptstyle-1, 2/\scriptstyle -2, 4/\scriptstyle-3, 6/\scriptstyle-4, 8/\scriptstyle-5}
\node[fill=uuuuuu,inner sep=1.3pt,circle,label=below:{$\label$}] at (\x,-1.5) (b\x) {};
\draw[<->] (t6) -- (b8);
\draw[<->] (t8) -- (b6);
\draw[uuuuuu,->] (t0) to[loop below] (t0);
\draw[uuuuuu,->] (b0) to[loop above] (b0);
\draw[uuuuuu,->] (t2) to[bend right] (t4);
\draw[uuuuuu,->] (t4) to[bend right] (t2);
\draw[uuuuuu,->] (b2) to[bend left] (b4);
\draw[uuuuuu,->] (b4) to[bend left] (b2);
\node[left] at (-.3,0) {$\pi=$};
\end{tikzpicture}
\hfil
\end{figure}
\end{document}
Editar:Con puntas de flecha más pequeñas y los bucles hacia el otro lado.
\documentclass[12pt]{article}
\usepackage{pgf,tikz}
\usetikzlibrary{backgrounds}
\usetikzlibrary{arrows}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\definecolor{uuuuuu}{rgb}{0.26666666666666666,0.26666666666666666,0.26666666666666666}
\tikzset{graph-1/.style = {
>=stealth,
x=0.37cm, y=0.37cm }
}% end of tikzset
\begin{figure}[ht]
\centering
\begin{tikzpicture}[graph-1]
\foreach \x/\label in {0/\scriptstyle1, 2/\scriptstyle2, 4/\scriptstyle3, 6/\scriptstyle4, 8/\scriptstyle5}
\node[fill=uuuuuu,inner sep=1.3pt,circle,label=above:{$\label$}] at (\x,1.5) (t\x) {};
\foreach \x/\label in {0/\scriptstyle-1, 2/\scriptstyle -2, 4/\scriptstyle-3, 6/\scriptstyle-4, 8/\scriptstyle-5}
\node[fill=uuuuuu,inner sep=1.3pt,circle,label=below:{$\label$}] at (\x,-1.5) (b\x) {};
\draw[<->] (t6) -- (b8);
\draw[<->] (t8) -- (b6);
\draw[uuuuuu,->] (t0) to[out=135,in=45,looseness=30] (t0);
\draw[uuuuuu,->] (b0) to[out=-135,in=-45,looseness=30] (b0);
\draw[uuuuuu,->] (t4) to[bend left] (t2);
\draw[uuuuuu,->] (t2) to[bend left] (t4);
\draw[uuuuuu,->] (b2) to[bend left] (b4);
\draw[uuuuuu,->] (b4) to[bend left] (b2);
\node[left] at (-.3,0) {$\pi=$};
\end{tikzpicture}
\hfil
\end{figure}
\end{document}
Respuesta2
Buena respuesta ligeramente modificada deJasper Habicht(No pude resistirme a hacerlo más conciso :-( ):
\documentclass[12pt]{article}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\begin{document}
\definecolor{uuuuuu}{rgb}{0.26666666666666666,0.26666666666666666,0.26666666666666666}
\tikzset{graph-1/.style = {
>={Stealth[length=1.5mm]},
x=0.37cm, y=0.37cm,
every label/.append style = {font=\scriptsize},
dot/.style = {circle, fill=uuuuuu, inner sep=1.3pt}
}
}% end of tikzset
\begin{figure}[ht]
\centering
\begin{tikzpicture}[graph-1]
\foreach \x/\label in {0/1, 2/2, 4/3, 6/4, 8/5}
{
\node[dot,label=$\label$ ] at (\x, 1.5) (t\x) {};
\node[dot,label=below:$-\label$] at (\x,-1.5) (b\x) {};
}
\node[left=3mm] at (0,0) {$\pi=$};
\draw[uuuuuu,->]
(t0) edge[out= 135,in= 45,looseness=30] (t0)
(b0) edge[out=-135,in=-45,looseness=30] (b0)
(t4) edge[bend left] (t2)
(t2) edge[bend left] (t4)
(b2) edge[bend left] (b4)
(b4) edge[bend left] (b2);
\draw[uuuuuu,<->] (t6) edge (b8)
(t8) edge (b6);
\end{tikzpicture}
\end{figure}
\end{document}
el resultado es casi el mismo (pueden haber pequeñas diferencias en el tamaño de las puntas de las flechas):