1

I would like to create the following diagram: enter image description here

I have tried with the following code:

\begin{figure}
\begin{tikzpicture}[scale=1, transform shape]
%\draw[step=0.5cm,gray,very thin] (0,0) grid (12,6);
\node (i) at (1.5,2.5) {\small\textbf{Somoza's Dictatorship}};
\node (ii) at (4.5,5.5) {\small\textbf{Sandinista Revolution}};
\node (iii) at (8,2.5) {\small\textbf{Neoliberalism}};
\node (iv) at (11,5.5) {\small\textbf{Hybrid Model}};
\node (a) at (1.5,4) {1936-1979};
\node (b) at (4.5,2) {1979-1990};
\node (c) at (8,4) {1990-2007};
\node (d) at (11,2) {2007-Present};
\end{tikzpicture}
\caption{Political Context of Nicaragua.}
\end{figure} 

However, I do not know how can I include the circle, the colors and the bullets. My result is something like this below. Is there any other way to do it? I found my code too difficult and messy.

enter image description here

Best Regards, Rony.

  • 1
    \node[circle,thick]? – TeXnician Apr 25 '17 at 17:38
7

If you set the text width of the node you can use a standard itemize list inside the node. To make a big circles, make a node with e.g. draw,circle,line width=2.5mm in the options.

Positioning these nodes is easier if you use the positioning library, and place nodes relative to each other. For example, if you have \node (a) {...};, then you can place node b below it by saying \node [below=of a] (b) {...};.

Here is an example, I added some comments in the code:

enter image description here

\documentclass{beamer}
\usetheme{metropolis}
\usepackage{ragged2e}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{frame}[fragile]
\frametitle{Intro}
\begin{tikzpicture}[
 bigcircle/.style={ % style for the circles
    text width=1.6cm, % diameter
    align=center, % center align
    line width=2mm, % thickness of border
    draw, % draw the border
    circle, % shape
    font=\sffamily\footnotesize % font of the year
  },
 desc/.style 2 args={ % style for the list nodes
   % this style takes two mandatory arguments, as indicated by "2 args", so is used as
   % desc={first arg}{second arc}
   % the first arg is the color of the title/heading, the second is the title itself
  text width=2.5cm, % means the node will be kind of like a 4cm wide minipage, and if the
                  % text in the node becomes wider than that, it will wrap to the next line
  font=\sffamily\scriptsize\RaggedRight, % set the font in the list
  label={[#1,yshift=-1.5ex,font=\sffamily\footnotesize]above:#2} % add the title as a label
  },
 node distance=10mm and 2mm % vertical and horizontal separation of nodes, when positioned with e.g. above=of othernode
]

\node [bigcircle] (circ1) {1936--1979};
\node [desc={black}{Somoza's dictatorship},below=of circ1] (list1) {
\begin{itemize}
\setlength\itemsep{0pt} % reduce space between items in list
\item Point 1
\item Point 2
\item Point 3
\item Point 4
\end{itemize}
};

\node [bigcircle,red,right=of list1] (circ2) {1979--1990};
\node [desc={red}{Sandinista Revolution},above=of circ2] (list2) {
\begin{itemize}
\setlength\itemsep{0pt}
\item Point 1
\item Point 2
\item Point 3
\item Point 4
\end{itemize}
};

\node [bigcircle,blue!60!red,right=of list2] (circ3) {1990--2007};
\node [desc={blue!60!red}{Neoliberalism},below=of circ3] (list3) {
\begin{itemize}
\setlength\itemsep{0pt}
\item Point 1
\item Point 2
\item Point 3
\item Point 4
\end{itemize}
};

\node [bigcircle,gray,right=of list3] (circ4) {2007--Present};
\node [desc={gray}{Hybrid model},above=of circ4] (h) {
\begin{itemize}
\setlength\itemsep{0pt}
\item Point 1
\item Point 2
\item Point 3
\item Point 4
\end{itemize}
};

% draw the line between circles
\draw [dashed,black!80] (circ1) -- (circ2) -- (circ3) -- (circ4);
\end{tikzpicture} 
\end{frame}
\end{document}
  • The comments are like a tikz tutorial :) – Dr. Manuel Kuehner Apr 25 '17 at 22:13
  • Oh~ That was amazing. I will study your code, and post the full diagram when I finish it. Thanks @TorbjørnT. – Maximiliano Rodriguez Apr 26 '17 at 5:22
  • Hi @TorbjørnT. I tried your code, but I got the following error Ilegal parameter number in definition of \test. \end{tikzpicture. I am trying to apply your code into a beamer (I have used the same packages as you). When I use your code with a standalone document type works nicely. Do you know why do I get the error? – Maximiliano Rodriguez Apr 26 '17 at 5:40
  • @MaximilianoRodriguez Sorry, I forgot this was beamer. You need \begin{frame}[fragile], if I remember correctly. – Torbjørn T. Apr 26 '17 at 5:49
  • @TorbjørnT. Thanks. It works perfectly now. I am sorry to bother you but do you know how can I reduce the space between the items. I will upload an image of my current slide. – Maximiliano Rodriguez Apr 26 '17 at 6:04
0

Following the advice from @TorbjørnT:

Because I am doing a beamer document. I add \begin{frame}[fragile]{Introduction: Political Context Of Nicaragua}. Plus I modified the scale scale=0.9, transform shape. and I got this: enter image description here

With font=\sffamily\scriptsize\RaggedRight: enter image description here

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.