5

I want to draw the following picture in LaTeX, and I thought that TikZ is a good thing to use.

enter image description here

But, I have multiple problems. First is, how can I draw self loops with arrows like in the picture and how can I make the node look like \bullet? Second is how can I put a border around two set of nodes? And Lastly, how can I write something on the left side or top of the border like in the picture?

Currently, I do not have much, since I'm stuck as how to continue:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{automata,arrows}

\begin{document}

\begin{figure}
\begin{tikzpicture}
\draw(0.0, 0.0) node{$E_{1728,w}$};
\end{tikzpicture}
\end{figure}

\end{document}

EDIT:

The accepted answer seems to work fine, but what if I have a scenario like this, where the nodes do not have any loops. This is the final scenario that I have, but it has some weird sizing issues:

\begin{figure}[H]
\begin{tikzpicture}[>={[inset=0,length=8,angle'=30,bend]Stealth}, line width=.7pt]
\begin{scope}[shift={(2, 0)}]
\draw[->,yshift=.45cm]  (270:0.45) arc (270:70:0.45);
\draw[->,yshift=.45cm,mark path extrema=c1]  (0,0) circle (0.45);
\draw [fill] circle(3pt) node[below] (l1){$E_{1728,w}$};
\end{scope}

\begin{scope}[shift={(3.3, 0)}]
\draw[->,yshift=.45cm]  (270:0.45) arc (270:70:0.45);
\draw[->,yshift=.45cm,mark path extrema=c2]  (0,0) circle (0.45);
\draw [fill] circle(3pt) node[below] (l2){$E_{1728,w^3}$};
\end{scope}
%
\coordinate (cheat) at ([yshift=2mm]c1-tl); % to make a gap above the graphs
\node[draw,rounded corners,fit=(c1-tl) (c2-tr) (l1) (l2) (cheat),
label={left:$\mathcal{G}_\ell(\mathbb{F}_{p^2},0)~~$},
label={above:$\ell=2$}]{};

\begin{scope}[shift={(2, -3.5)}]
\draw[->,yshift=.45cm]  (270:0.45) arc (270:70:0.45);
\draw[->,yshift=.45cm,mark path extrema=c3]  (0,0) circle (0.45);
\draw [fill] circle(3pt) node[below] (l3){$E_{0,w}$};
\end{scope}

\begin{scope}[shift={(3.3, -3.5)}]
\draw[->,yshift=.45cm]  (270:0.45) arc (270:70:0.45);
\draw[->,yshift=.45cm,mark path extrema=c4]  (0,0) circle (0.45);
\draw [fill] circle(3pt) node[below] (l4){$E_{0,w^5}$};
\end{scope}
%
\coordinate (cheat) at ([yshift=2mm]c3-tl); 
\node[draw,rounded corners,fit=(c3-tl) (c4-tr) (l3) (l4) (cheat) (l1.west|-l3)
(l2.east|-l4),
label={left:$\mathcal{G}_\ell(\mathbb{F}_{p^2},-p)$},
label={above:$\ell=3$}]{};

\begin{scope}[shift={(2, -7.0)}]
\draw[->,yshift=.45cm]  (270:0.45) arc (270:70:0.45);
\draw[->,yshift=.45cm,mark path extrema=c9]  (0,0) circle (0.45);
\draw [fill] circle(3pt) node[below] (l9){$E_{0,w^2}$};
\end{scope}

\begin{scope}[shift={(3.3, -7.0)}]
\draw[->,yshift=.45cm]  (270:0.45) arc (270:70:0.45);
\draw[->,yshift=.45cm,mark path extrema=c10]  (0,0) circle (0.45);
\draw [fill] circle(3pt) node[below] (l10){$E_{0,w^4}$};
\end{scope}
%
\coordinate (cheat) at ([yshift=2mm]c9-tl); 
\node[draw,rounded corners,fit=(c9-tl) (c10-tr) (l9) (l10) (cheat) (l3.west|-l9)
(l4.east|-l10),
label={left:$\mathcal{G}_\ell(\mathbb{F}_{p^2},p)$},
label={above:$\ell=3$}]{};
%TODO: Fix this!

\begin{scope}[shift={(6, 0)}]
\draw[->,yshift=.45cm]  (270:0.45) arc (270:70:0.45);
\draw[->,yshift=.45cm,mark path extrema=c5]  (0,0) circle (0.45);
\draw[->,yshift=.3cm]  (270:0.3) arc (270:60:0.3);
\draw[->,yshift=.3cm]  (0,0) circle (0.3);
\draw [fill] circle(3pt) node[below] (l5){$E_{1728,w}$};
\end{scope}

\begin{scope}[shift={(7.3, 0)}]
\draw[->,yshift=.45cm]  (270:0.45) arc (270:70:0.45);
\draw[->,yshift=.45cm,mark path extrema=c6]  (0,0) circle (0.45);
\draw[->,yshift=.3cm]  (270:0.3) arc (270:60:0.3);
\draw[->,yshift=.3cm]  (0,0) circle (0.3);
\draw [fill] circle(3pt) node[below] (l6){$E_{1728,w^3}$};
\end{scope}
%
\coordinate (cheat) at ([yshift=2mm]c5-tl); 
\node[draw,rounded corners,fit=(c5-tl) (c6-tr) (l5) (l6) (cheat),
label={above:$\ell\equiv1\pmod4$}]{};

\begin{scope}[shift={(6, -3.5)}]
\draw[->,yshift=.45cm]  (270:0.45) arc (270:70:0.45);
\draw[->,yshift=.45cm,mark path extrema=c7]  (0,0) circle (0.45);
\draw[->,yshift=.3cm]  (270:0.3) arc (270:60:0.3);
\draw[->,yshift=.3cm]  (0,0) circle (0.3);
\draw [fill] circle(3pt) node[below] (l7){$E_{0,w}$};
\end{scope}

\begin{scope}[shift={(7.3, -3.5)}]
\draw[->,yshift=.45cm]  (270:0.45) arc (270:70:0.45);
\draw[->,yshift=.45cm,mark path extrema=c8]  (0,0) circle (0.45);
\draw[->,yshift=.3cm]  (270:0.3) arc (270:60:0.3);
\draw[->,yshift=.3cm]  (0,0) circle (0.3);
\draw [fill] circle(3pt) node[below] (l8){$E_{0,w^5}$};
\end{scope}
%
\coordinate (cheat) at ([yshift=2mm]c7-tl); 
\node[draw,rounded corners,fit=(c7-tl) (c8-tr) (l7) (l8) (cheat)
(l5.west|-l7) (l6.east|-l8),
label={above:$\ell\equiv1\pmod3$}]{};

\begin{scope}[shift={(6, -7.0)}]
\draw[->,yshift=.45cm]  (270:0.45) arc (270:70:0.45);
\draw[->,yshift=.45cm,mark path extrema=c11]  (0,0) circle (0.45);
\draw[->,yshift=.3cm]  (270:0.3) arc (270:60:0.3);
\draw[->,yshift=.3cm]  (0,0) circle (0.3);
\draw [fill] circle(3pt) node[below] (l11){$E_{0,w^2}$};
\end{scope}

\begin{scope}[shift={(7.3, -7.0)}]
\draw[->,yshift=.45cm]  (270:0.45) arc (270:70:0.45);
\draw[->,yshift=.45cm,mark path extrema=c12]  (0,0) circle (0.45);
\draw[->,yshift=.3cm]  (270:0.3) arc (270:60:0.3);
\draw[->,yshift=.3cm]  (0,0) circle (0.3);
\draw [fill] circle(3pt) node[below] (l12){$E_{0,w^4}$};
\end{scope}
%
\coordinate (cheat) at ([yshift=2mm]c11-tl); 
\node[draw,rounded corners,fit=(c11-tl) (c12-tr) (l11) (l12) (cheat)
(l7.west|-l11) (l8.east|-l12),
label={above:$\ell\equiv1\pmod3$}]{};
%TODO: Fix this!

\begin{scope}[shift={(10, 0)}]
\draw [fill] circle(3pt) node[below] (l13){$E_{1728,w}$};
\end{scope}

\begin{scope}[shift={(11.3, 0)}]
\draw [fill] circle(3pt) node[below] (l14){$E_{1728,w^3}$};
\end{scope}
%
\coordinate (cheat) at ([yshift=2mm]c5-tl); 
\node[draw,rounded corners,fit=(l13) (l14) (cheat)
(l5.west|-l13) (l6.east|-l14),
label={above:$\ell\equiv3\pmod4$}]{};
%TODO: Fix this!

\begin{scope}[shift={(10, -3.5)}]
\draw [fill] circle(3pt) node[below] (l15){$E_{0,w}$};
\end{scope}

\begin{scope}[shift={(11.3, -3.5)}]
\draw [fill] circle(3pt) node[below] (l16){$E_{0,w^5}$};
\end{scope}
%
\coordinate (cheat) at ([yshift=2mm]c7-tl); 
\node[draw,rounded corners,fit=(l15) (l16) (cheat)
(l13.west|-l15) (l14.east|-l16),
label={above:$\ell\equiv2\pmod3$}]{};
%TODO: Fix this!

\begin{scope}[shift={(10, -7.0)}]
\draw [fill] circle(3pt) node[below] (l17){$E_{0,w^2}$};
\end{scope}

\begin{scope}[shift={(11.3, -7.0)}]
\draw [fill] circle(3pt) node[below] (l18){$E_{0,w^4}$};
\end{scope}
%
\coordinate (cheat) at ([yshift=2mm]c11-tl); 
\node[draw,rounded corners,fit=(l17) (l18) (cheat)
(l15.west|-l17) (l16.east|-l18),
label={above:$\ell\equiv2\pmod3$}]{};
%TODO: Fix this!
\end{tikzpicture}
\end{figure}

Any ideas how to fix the issues?

9

You are loading the bending library, so why not using it? (If you do that, you need to draw an arrow and a circle since otherwise the arrows won't be bent, see Zarko's answer.) And you want to fit some graphs and text nodes in some shape? So why not using fit? Here comes a code that determines the extrema of the graphs and uses their position to draw a box node around them. The annotations can then simply be achieved by placing labels of those box nodes.

enter image description here

\documentclass{article}
\usepackage{amsmath,amssymb}
\usepackage{tikz}
\usetikzlibrary{automata,arrows.meta,bending,fit}

\tikzset{mark path extrema/.style = {
    path picture={
      \coordinate (#1-bl) at (path picture bounding box.south west);
      \coordinate (#1-tr) at (path picture bounding box.north east);
      \coordinate (#1-br) at (path picture bounding box.south east);
      \coordinate (#1-tl) at (path picture bounding box.north west);
    }
  }
}


\begin{document}

\begin{figure}[!h!]
\begin{tikzpicture}[>={[inset=0,length=8,angle'=30,bend]Stealth}, line width=.7pt]
\begin{scope}[shift={(2, 0)}]
\draw[->,yshift=.45cm]  (270:0.45) arc (270:70:0.45);
\draw[->,yshift=.45cm,mark path extrema=c1]  (0,0) circle (0.45);
\draw [fill] circle(3pt) node[below] (l1){$E_{1728,w}$};
\end{scope}

\begin{scope}[shift={(3.5, 0)}]
\draw[->,yshift=.45cm]  (270:0.45) arc (270:70:0.45);
\draw[->,yshift=.45cm,mark path extrema=c2]  (0,0) circle (0.45);
\draw [fill] circle(3pt) node[below] (l2) {$E_{1728,w^2}$};
\end{scope}
%
\coordinate (cheat) at ([yshift=2mm]c1-tl); % to make a gap above the graphs
\node[draw,rounded corners,fit=(c1-tl) (c2-tr) (l1) (l2) (cheat),
label={left:$\mathcal{G}_\ell(\mathbb{F}_{p^2},0)$},
label={above:$\ell=2$}]{};

\begin{scope}[shift={(2, -3.5)}]
\draw[->,yshift=.45cm]  (270:0.45) arc (270:70:0.45);
\draw[->,yshift=.45cm,mark path extrema=c3]  (0,0) circle (0.45);
\draw [fill] circle(3pt) node[below](l3){$E_{0,w}$};
\end{scope}

\begin{scope}[shift={(3.5, -3.5)}]
\draw[->,yshift=.45cm]  (270:0.45) arc (270:70:0.45);
\draw[->,yshift=.45cm,mark path extrema=c4]  (0,0) circle (0.45);
\draw [fill] circle(3pt) node[below] (l4){$E_{0,w^5}$};
\end{scope}
%
\coordinate (cheat) at ([yshift=2mm]c3-tl); 
\node[draw,rounded corners,fit=(c3-tl) (c4-tr) (l3) (l4) (cheat) (l1.west|-l3)
(l2.east|-l4),
label={left:$\mathcal{G}_\ell(\mathbb{F}_{p^2},-p)$},
label={above:$\ell=3$}]{};

\begin{scope}[shift={(6, 0)}]
\draw[->,yshift=.45cm]  (270:0.45) arc (270:70:0.45);
\draw[->,yshift=.45cm,mark path extrema=c5]  (0,0) circle (0.45);
\draw[->,yshift=.3cm]  (270:0.3) arc (270:60:0.3);
\draw[->,yshift=.3cm]  (0,0) circle (0.3);
\draw [fill] circle(3pt) node[below] (l5){$E_{1728,w}$};
\end{scope}

\begin{scope}[shift={(7.5, 0)}]
\draw[->,yshift=.45cm]  (270:0.45) arc (270:70:0.45);
\draw[->,yshift=.45cm,mark path extrema=c6]  (0,0) circle (0.45);
\draw[->,yshift=.3cm]  (270:0.3) arc (270:60:0.3);
\draw[->,yshift=.3cm]  (0,0) circle (0.3);
\draw [fill] circle(3pt) node[below] (l6){$E_{1728,w^2}$};
\end{scope}
%
\coordinate (cheat) at ([yshift=2mm]c5-tl); 
\node[draw,rounded corners,fit=(c5-tl) (c6-tr) (l5) (l6) (cheat),
label={above:$\ell\equiv1\pmod4$}]{};


\begin{scope}[shift={(6, -3.5)}]
\draw[->,yshift=.45cm]  (270:0.45) arc (270:70:0.45);
\draw[->,yshift=.45cm,mark path extrema=c7]  (0,0) circle (0.45);
\draw[->,yshift=.3cm]  (270:0.3) arc (270:60:0.3);
\draw[->,yshift=.3cm]  (0,0) circle (0.3);
\draw [fill] circle(3pt) node[below] (l7){$E_{0,w}$};
\end{scope}

\begin{scope}[shift={(7.5, -3.5)}]
\draw[->,yshift=.45cm]  (270:0.45) arc (270:70:0.45);
\draw[->,yshift=.45cm,mark path extrema=c8]  (0,0) circle (0.45);
\draw[->,yshift=.3cm]  (270:0.3) arc (270:60:0.3);
\draw[->,yshift=.3cm]  (0,0) circle (0.3);
\draw [fill] circle(3pt) node[below] (l8){$E_{0,w^5}$};
\end{scope}
%
\coordinate (cheat) at ([yshift=2mm]c7-tl); 
\node[draw,rounded corners,fit=(c7-tl) (c8-tr) (l7) (l8) (cheat)
(l5.west|-l7) (l6.east|-l8),
label={above:$\ell\equiv1\pmod3$}]{};

\end{tikzpicture}
\end{figure}

\end{document}

EDIT: Answer to your new question: You are fitting nodes/coordinates that you do not want to fit. fit=(node1) (node2) ... really fits all the nodes in. However, e.g. in

\coordinate (cheat) at ([yshift=2mm]c11-tl); 
\node[draw,rounded corners,fit=(l17) (l18) (cheat)
(l15.west|-l17) (l16.east|-l18),
label={above:$\ell\equiv2\pmod3$}]{};

you have included the cheat node, which is placed above one of the circles. I moved the cheat node horizontally such that it is above a label that you really want to fit.

\documentclass{article}
\usepackage{amsmath,amssymb}
\usepackage{tikz}
\usetikzlibrary{automata,arrows.meta,bending,fit}

\tikzset{mark path extrema/.style = {
    path picture={
      \coordinate (#1-bl) at (path picture bounding box.south west);
      \coordinate (#1-tr) at (path picture bounding box.north east);
      \coordinate (#1-br) at (path picture bounding box.south east);
      \coordinate (#1-tl) at (path picture bounding box.north west);
    }
  }
}


\begin{document}

\begin{tikzpicture}[>={[inset=0,length=8,angle'=30,bend]Stealth}, line width=.7pt]
\begin{scope}[shift={(2, 0)}]
\draw[->,yshift=.45cm]  (270:0.45) arc (270:70:0.45);
\draw[->,yshift=.45cm,mark path extrema=c1]  (0,0) circle (0.45);
\draw [fill] circle(3pt) node[below] (l1){$E_{1728,w}$};
\end{scope}

\begin{scope}[shift={(3.3, 0)}]
\draw[->,yshift=.45cm]  (270:0.45) arc (270:70:0.45);
\draw[->,yshift=.45cm,mark path extrema=c2]  (0,0) circle (0.45);
\draw [fill] circle(3pt) node[below] (l2){$E_{1728,w^3}$};
\end{scope}
%
\coordinate (cheat) at ([yshift=2mm]c1-tl); % to make a gap above the graphs
\node[draw,rounded corners,fit=(c1-tl) (c2-tr) (l1) (l2) (cheat),
label={left:$\mathcal{G}_\ell(\mathbb{F}_{p^2},0)~~$},
label={above:$\ell=2$}]{};

\begin{scope}[shift={(2, -3.5)}]
\draw[->,yshift=.45cm]  (270:0.45) arc (270:70:0.45);
\draw[->,yshift=.45cm,mark path extrema=c3]  (0,0) circle (0.45);
\draw [fill] circle(3pt) node[below] (l3){$E_{0,w}$};
\end{scope}

\begin{scope}[shift={(3.3, -3.5)}]
\draw[->,yshift=.45cm]  (270:0.45) arc (270:70:0.45);
\draw[->,yshift=.45cm,mark path extrema=c4]  (0,0) circle (0.45);
\draw [fill] circle(3pt) node[below] (l4){$E_{0,w^5}$};
\end{scope}
%
\coordinate (cheat) at ([yshift=2mm]c3-tl); 
\node[draw,rounded corners,fit=(c3-tl) (c4-tr) (l3) (l4) (cheat) (l1.west|-l3)
(l2.east|-l4),
label={left:$\mathcal{G}_\ell(\mathbb{F}_{p^2},-p)$},
label={above:$\ell=3$}]{};

\begin{scope}[shift={(2, -7.0)}]
\draw[->,yshift=.45cm]  (270:0.45) arc (270:70:0.45);
\draw[->,yshift=.45cm,mark path extrema=c9]  (0,0) circle (0.45);
\draw [fill] circle(3pt) node[below] (l9){$E_{0,w^2}$};
\end{scope}

\begin{scope}[shift={(3.3, -7.0)}]
\draw[->,yshift=.45cm]  (270:0.45) arc (270:70:0.45);
\draw[->,yshift=.45cm,mark path extrema=c10]  (0,0) circle (0.45);
\draw [fill] circle(3pt) node[below] (l10){$E_{0,w^4}$};
\end{scope}
%
\coordinate (cheat) at ([yshift=2mm]c9-tl); 
\node[draw,rounded corners,fit=(c9-tl) (c10-tr) (l9) (l10) (cheat) (l1.west|-l9)
(l2.east|-l10),
label={left:$\mathcal{G}_\ell(\mathbb{F}_{p^2},p)$},
label={above:$\ell=3$}]{};
%TODO: Fix this!

\begin{scope}[shift={(6, 0)}]
\draw[->,yshift=.45cm]  (270:0.45) arc (270:70:0.45);
\draw[->,yshift=.45cm,mark path extrema=c5]  (0,0) circle (0.45);
\draw[->,yshift=.3cm]  (270:0.3) arc (270:60:0.3);
\draw[->,yshift=.3cm]  (0,0) circle (0.3);
\draw [fill] circle(3pt) node[below] (l5){$E_{1728,w}$};
\end{scope}

\begin{scope}[shift={(7.3, 0)}]
\draw[->,yshift=.45cm]  (270:0.45) arc (270:70:0.45);
\draw[->,yshift=.45cm,mark path extrema=c6]  (0,0) circle (0.45);
\draw[->,yshift=.3cm]  (270:0.3) arc (270:60:0.3);
\draw[->,yshift=.3cm]  (0,0) circle (0.3);
\draw [fill] circle(3pt) node[below] (l6){$E_{1728,w^3}$};
\end{scope}
%
\coordinate (cheat) at ([yshift=2mm]c5-tl); 
\node[draw,rounded corners,fit=(c5-tl) (c6-tr) (l5) (l6) (cheat),
label={above:$\ell\equiv1\pmod4$}]{};

\begin{scope}[shift={(6, -3.5)}]
\draw[->,yshift=.45cm]  (270:0.45) arc (270:70:0.45);
\draw[->,yshift=.45cm,mark path extrema=c7]  (0,0) circle (0.45);
\draw[->,yshift=.3cm]  (270:0.3) arc (270:60:0.3);
\draw[->,yshift=.3cm]  (0,0) circle (0.3);
\draw [fill] circle(3pt) node[below] (l7){$E_{0,w}$};
\end{scope}

\begin{scope}[shift={(7.3, -3.5)}]
\draw[->,yshift=.45cm]  (270:0.45) arc (270:70:0.45);
\draw[->,yshift=.45cm,mark path extrema=c8]  (0,0) circle (0.45);
\draw[->,yshift=.3cm]  (270:0.3) arc (270:60:0.3);
\draw[->,yshift=.3cm]  (0,0) circle (0.3);
\draw [fill] circle(3pt) node[below] (l8){$E_{0,w^5}$};
\end{scope}
%
\coordinate (cheat) at ([yshift=2mm]c7-tl); 
\node[draw,rounded corners,fit=(c7-tl) (c8-tr) (l7) (l8) (cheat)
(l5.west|-l7) (l6.east|-l8),
label={above:$\ell\equiv1\pmod3$}]{};

\begin{scope}[shift={(6, -7.0)}]
\draw[->,yshift=.45cm]  (270:0.45) arc (270:70:0.45);
\draw[->,yshift=.45cm,mark path extrema=c11]  (0,0) circle (0.45);
\draw[->,yshift=.3cm]  (270:0.3) arc (270:60:0.3);
\draw[->,yshift=.3cm]  (0,0) circle (0.3);
\draw [fill] circle(3pt) node[below] (l11){$E_{0,w^2}$};
\end{scope}

\begin{scope}[shift={(7.3, -7.0)}]
\draw[->,yshift=.45cm]  (270:0.45) arc (270:70:0.45);
\draw[->,yshift=.45cm,mark path extrema=c12]  (0,0) circle (0.45);
\draw[->,yshift=.3cm]  (270:0.3) arc (270:60:0.3);
\draw[->,yshift=.3cm]  (0,0) circle (0.3);
\draw [fill] circle(3pt) node[below] (l12){$E_{0,w^4}$};
\end{scope}
%
\coordinate (cheat) at ([yshift=2mm]c11-tl); 
\node[draw,rounded corners,fit=(c11-tl) (c12-tr) (l11) (l12) (cheat)
(l5.west|-l11) (l6.east|-l12),
label={above:$\ell\equiv1\pmod3$}]{};

\begin{scope}[shift={(10, 0)}]
\draw [fill] circle(3pt) node[below] (l13){$E_{1728,w}$};
\end{scope}

\begin{scope}[shift={(11.3, 0)}]
\draw [fill] circle(3pt) node[below] (l14){$E_{1728,w^3}$};
\end{scope}
%
\coordinate (cheat) at ([yshift=2mm]c5-tl-|l13); 
\node[draw,rounded corners,fit=(l13) (l14) (cheat),
label={above:$\ell\equiv3\pmod4$}]{};
%TODO: Fix this!

\begin{scope}[shift={(10, -3.5)}]
\draw [fill] circle(3pt) node[below] (l15){$E_{0,w}$};
\end{scope}

\begin{scope}[shift={(11.3, -3.5)}]
\draw [fill] circle(3pt) node[below] (l16){$E_{0,w^5}$};
\end{scope}
%
\coordinate (cheat) at ([yshift=2mm]c7-tl-|l15); 
\node[draw,rounded corners,fit=(l15) (l16) (cheat)
(l13.west|-l15) (l14.east|-l16),
label={above:$\ell\equiv2\pmod3$}]{};

\begin{scope}[shift={(10, -7.0)}]
\draw [fill] circle(3pt) node[below] (l17){$E_{0,w^2}$};
\end{scope}

\begin{scope}[shift={(11.3, -7.0)}]
\draw [fill] circle(3pt) node[below] (l18){$E_{0,w^4}$};
\end{scope}
%
\coordinate (cheat) at ([yshift=2mm]c11-tl-|l17); 
\node[draw,rounded corners,fit=(l17) (l18) (cheat)
(l13.west|-l17) (l14.east|-l18),
label={above:$\ell\equiv2\pmod3$}]{};
\end{tikzpicture}
\end{document}

enter image description here

Note that by the rules of this site I am not supposed to answer new or extended questions in an existing answer. So I'd kindly like to ask you to ask additional requests in form of a new, separate question.

  • Thank you for the beautiful answer, but one small caveat, can the borders be made somehow to be the same size, like in my original picture? – pixel Mar 31 '18 at 22:43
  • @pixel The answer is yes, but could you please tell me the precise distances? – marmot Mar 31 '18 at 22:46
  • Well I do not have specific sizes but as long as I can see in the original image, all the borders are the same size and basically the size is something like the size of the largest border, which basically happens for node pair $E_{1728,w}$ and $E_{1728,w^3}$. – pixel Mar 31 '18 at 22:51
  • @pixel I think I see what you mean, please have a look at the update. The strange (l1.west|-l3) notation means the fit also should include a point as west as the west end of l1 and at the same height as l3. – marmot Mar 31 '18 at 22:59
  • This works good in general, but I extended it a bit to fulfill all the nodes that I need to cover, and some of them do not have any arrows at all. How do you know where to draw the border there? Can you check my edited final answer? That's all I need to draw, but as you can see it has some weird border issues for the ones on the right side, and in the last row. Any ideas? – pixel Apr 1 '18 at 10:28
9

You can start with something like this:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{automata,arrows.meta,bending}

\begin{document}

\begin{figure}
\begin{tikzpicture}[>={[inset=0,length=10,angle'=29]Stealth}, line width=.7pt]
\draw[->,yshift=1cm]  (90:1.0) arc (90:-270:1.0);
\draw[->,yshift=.5cm] (90:0.5) arc (90:-270:0.5);
\draw [fill] circle(3pt) node[below]{$E_{1728,w}$};
\end{tikzpicture}
\end{figure}

\end{document}

enter image description here

  • 1
    You just do a \begin{scope}[shift={(xshift,yshift)}] .. \end{scope} several times with suitable values for xshift,yshift and the code in-between is essentially mine above. – AboAmmar Mar 31 '18 at 20:38
7

enter image description here

since i write code from scratch, the images are not in correct order and right labels, but his is not difficult to correct.

for borders around circles is drawn by node with option fit from tikzlibrary fit:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,
                bending,
                decorations.markings, % for arrows on circles
                fit, % for borders around circled
                positioning % for positioning nodes
                }
\usepackage{amsmath, amssymb} % for math

\begin{document}

\begin{figure}[ht]
    \begin{tikzpicture}[
    node distance = 22mm,
line width = 0.7pt,
decoration = {markings,% for drawing arrow's head on circle
              mark=at position 0.25 with {\arrowreversed{Straight Barb}},
             },
dot/.style = {circle,fill, node contents={},% for node below circle
             },
  F/.style = {draw, rounded corners, % for border around circles
              inner xsep= 12mm, inner ysep=4mm,
              yshift=-3mm,
              node contents={},
             }
                    ]
\node (n11) [dot,label=below:{$E_{1728,w}$}];
\draw[postaction={decorate}]  (n11) + (0,1)     circle (10mm);
\draw[postaction={decorate}]  (n11) + (0,0.5)   circle ( 5mm);
\coordinate[above=21mm of n11] (n10);
%
\node (n12) [dot,label=below:{$E_{1728,w^3}$}, right=of n11];
\draw[postaction={decorate}]  (n12) + (0,1)     circle (10mm);
\draw[postaction={decorate}]  (n12) + (0,0.5)   circle ( 5mm);
%
\node (n13) [F, fit=(n11) (n12) (n10),
             label=$\ell\equiv1 (mod 4)$,
             label=left:{$\mathcal{G}_\ell(\mathbb{F}_{p^2},0)$}];
%%%%
\node (n21) [dot,label=below:{$E_{1728,w}$},
             right=of n11 -| n13.east];
\draw[postaction={decorate}]  (n21) + (0,1)     circle (10mm);
\coordinate[above=21mm of n21] (n20);
%
\node (n22) [dot,label=below:{$E_{1728,w^3}$}, right=of n21];
\draw[postaction={decorate}]  (n22) + (0,1)     circle (10mm);
%
\node (n23) [F, fit=(n21) (n22) (n20),
             label={$\ell=2$}];
    \end{tikzpicture}
\end{figure}

\end{document}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.