3

enter image description here

This is the code I used:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\newcommand{\LD}{\langle}
\newcommand{\RD}{\rangle}
\begin{document}
\begin{tikzpicture} [scale=0.4]
\tikzstyle{every node}=[draw,circle,fill=white,minimum size=1pt,
                        inner sep=0pt]
   \draw  node (1) [label=$v_{1,1}$] {}
-- ++(330:2.0cm) node (2) [] {}
-- ++(270:2.0cm) node (3)
[label=left:$v_{n,1}$] {}-- ++(300:2.0cm) node (4)
[] {}-- ++(210:2.0cm) node (5)
[] {}-- ++(120:2.0cm) node (6)
[] {}-- ++(150:2.0cm) node (7)
[] {}
 -- ++(90:2.0cm) node (8)
[] {}
 -- ++(30:2.0cm) node (1)
 {};
 \path [](1) edge (2);
 \path [](2) edge (3);
 \path [dashed](3) edge (4);
 \path [dashed](5) edge (6);
 \path [](6) edge (7);
 \path [](7) edge (8);
 \path [](8) edge (1);

  \draw   {}
-- ++(0:6.0cm) node (1') []
{}
-- ++(330:2.0cm) node (2) [] {}
-- ++(270:2.0cm) node (3)
[] {}-- ++(300:2.0cm) node (4)
[] {}-- ++(210:2.0cm) node (5)
[] {}-- ++(120:2.0cm) node (6)
[] {}-- ++(150:2.0cm) node (7)
[] {}
 -- ++(90:2.0cm) node (8)
[] {}
 -- ++(30:2.0cm) node (1)
 {};
 \path [](1) edge (2);
 \path [](2) edge (3);
 \path [dashed](3) edge (4);
 \path [dashed](5) edge (6);
 \path [](6) edge (7);
 \path [](7) edge (8);
 \path [](8) edge (1);

 \draw   {}
-- ++(0:12.0cm) node (1') []
{}
-- ++(330:2.0cm) node (2) [] {}
-- ++(270:2.0cm) node (3)
[] {}-- ++(300:2.0cm) node (4)
[] {}-- ++(210:2.0cm) node (5)
[] {}-- ++(120:2.0cm) node (6)
[] {}-- ++(150:2.0cm) node (7)
[] {}
 -- ++(90:2.0cm) node (8)
[] {}
 -- ++(30:2.0cm) node (1)
 {};
 \path [](1) edge (2);
 \path [](2) edge (3);
 \path [dashed](3) edge (4);
 \path [dashed](5) edge (6);
 \path [](6) edge (7);
 \path [](7) edge (8);
 \path [](8) edge (1);
\end{tikzpicture}
\end{document}
Salim Bou
  • 17,021
  • 2
  • 31
  • 76
Kas1
  • 113

2 Answers2

4

Just add

\draw (4) node[below,xshift=-4mm,draw=white]{Layer *};

below the two polygons. This gives:

enter image description here

I have used xshift=-4mm to move the label a little (i.e. 4mm to the left). You might want to fine-tune this. Similarly, if you wanted to move the label down by, say, 2mm then replace below with below=2mm.

Here is the code in full:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\newcommand{\LD}{\langle}
\newcommand{\RD}{\rangle}
\begin{document}
\begin{tikzpicture} [scale=0.4]
\tikzstyle{every node}=[draw,circle,fill=white,minimum size=1pt,
                        inner sep=0pt]
   \draw  node (1) [label=$v_{1,1}$] {}
-- ++(330:2.0cm) node (2) [] {}
-- ++(270:2.0cm) node (3)
[label=left:$v_{n,1}$] {}-- ++(300:2.0cm) node (4)
[] {}-- ++(210:2.0cm) node (5)
[] {}-- ++(120:2.0cm) node (6)
[] {}-- ++(150:2.0cm) node (7)
[] {}
 -- ++(90:2.0cm) node (8)
[] {}
 -- ++(30:2.0cm) node (1)
 {};
 \path [](1) edge (2);
 \path [](2) edge (3);
 \path [dashed](3) edge (4);
 \path [dashed](5) edge (6);
 \path [](6) edge (7);
 \path [](7) edge (8);
 \path [](8) edge (1);

 \draw (4) node[below,xshift=-4mm,draw=white]{Layer 1};
  \draw   {}
-- ++(0:6.0cm) node (1') []
{}
-- ++(330:2.0cm) node (2) [] {}
-- ++(270:2.0cm) node (3)
[] {}-- ++(300:2.0cm) node (4)
[] {}-- ++(210:2.0cm) node (5)
[] {}-- ++(120:2.0cm) node (6)
[] {}-- ++(150:2.0cm) node (7)
[] {}
 -- ++(90:2.0cm) node (8)
[] {}
 -- ++(30:2.0cm) node (1)
 {};
 \path [](1) edge (2);
 \path [](2) edge (3);
 \path [dashed](3) edge (4);
 \path [dashed](5) edge (6);
 \path [](6) edge (7);
 \path [](7) edge (8);
 \path [](8) edge (1);

 \draw (4) node[below,xshift=-4mm,draw=white]{Layer 2};

 \draw   {}
-- ++(0:12.0cm) node (1') []
{}
-- ++(330:2.0cm) node (2) [] {}
-- ++(270:2.0cm) node (3)
[] {}-- ++(300:2.0cm) node (4)
[] {}-- ++(210:2.0cm) node (5)
[] {}-- ++(120:2.0cm) node (6)
[] {}-- ++(150:2.0cm) node (7)
[] {}
 -- ++(90:2.0cm) node (8)
[] {}
 -- ++(30:2.0cm) node (1)
 {};
 \path [](1) edge (2);
 \path [](2) edge (3);
 \path [dashed](3) edge (4);
 \path [dashed](5) edge (6);
 \path [](6) edge (7);
 \path [](7) edge (8);
 \path [](8) edge (1);
\end{tikzpicture}
\end{document}
2

Just wanted to post the shorter version of the code. In the comments it is not very clear. This can save you a lot of typing in the future.

Result

Result

MWE

\documentclass[convert]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\newcommand{\radius}{0.75 cm} %Radius of the hexagons
\begin{document}
\begin{tikzpicture} 
    \foreach \x in {1, 2, 3}{
        \begin{scope}[xshift=\x*1.75 cm]
            % Draw hexagons
            \draw (-30:\radius) 
                \foreach [count=\i] \a in {-30, 30,90,...,270} { %\a is the angle variable 
                    --(\a:\radius) node[fill, circle, inner sep=1pt] (\i) {} 
                    }; 
            % Dotted lines
            \draw[dashed] (1)--++(-60:\radius); 
            \draw[dashed] (6)--++(-60:\radius);
            % Layer number
            \ifnum \x<3
                \node [below=of 6, yshift=5] {Layer \x};
            \fi
            % Node number
            \ifnum \x=1
                \node[left] at (1) {$v_{n, 1}$};
                \node[above] at (3) {$v_{1, 1}$};
            \fi
        \end{scope}
    }   
\end{tikzpicture}
\end{document}
Roald
  • 1,245