I attempt to draw my map and I'm stuck in drawing the following \
- drawing a loop above from 1 to 1
- drawing loop down from -1 to -1
- drawing bend above arrow from 2 and ending in 3 and bend down arrow from 3 and ending in 2
- drawing bend above arrow from -2 and ending in -3 and bend down arrow from -3 and ending in -2
- I also drew an "arrow" from 3 to -4 and another one from 4 to -3 but how to make them appear as a double-headed arrow connecting them. Sorry, I'm still a leTEX learner and I attempted a lot with no luck! This is my attempt and could you please help me and look at my handed drwawing picture as well.
\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}
Best Answer
Possible solution:
You should use the proper TikZ commands if you want to create nodes with labels, that is: nodes with labels. Then you can easily draw arrows from one node to the other. Also, it does not make that much sense to use a
foreach
loop only for one single command.I amended your code. The two
foreach
loops create the nodes and give them the namest0
,t2
,t4
,t6
,t8
andb0
,b2
etc.You may want to draw the arrows differently.
Edit: With smaller arrow heads and the loops to the other side.