# Sequence of images in the tikz

I am trying to design a sequence of diagrams as given in the image attached below. Till now I have been able to do this much.

\documentclass{beamer}
\usepackage{mathtools}
\usepackage{array}
\usepackage{amsmath}
\usepackage{tikz}

\usetheme{Warsaw}

\setbeamercolor{structure}{fg=cyan!90!black}

\begin{document}
\begin{frame}

\frametitle{}
$\setlength{\extrarowheight}{3pt}% local setting \begin{array}{l|*{5}{l}} \cdot & & & & & \\ \hline & & & & & \\ & & & & & \\ & & & & & \\ & & & & & \\ & & & & & \\ \end{array}$

\begin{center}
\begin{tikzpicture}
\draw[draw=black] (16.1,5.5) rectangle ++(2,3);
\end{tikzpicture}
\end{center}

\end{frame}
\end{document}


I am trying this

As tizpicture, using pic and TikZ libraries arrows.meta, positioning and shapes.symbols:


\documentclass{beamer}
\usetheme{Warsaw}
\setbeamercolor{structure}{fg=cyan!90!black}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{array}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,
positioning,
shapes.symbols
}

\begin{document}
\begin{frame}
\frametitle{Process \dots}
\centering
\begin{tikzpicture}[
node distance = 9mm,
arr/.style = {-Stealth, semithick, shorten > = 1mm, shorten < = 1mm},
box/.style = {draw, minimum height=3cm, minimum width=2cm},
oblak/.style = {cloud, draw, aspect=2},
TAB/.pic   = {\draw (0,0) -- (1.5,0);
\draw (0.5,0.5) -- (0.5,-2.5);
\coordinate (-w) at (1.5,-1);
}
]
\pic    (n1) at (0,0) {TAB};
\node   (n2) [box, right=of n1-w] {text};
\node   (n3) [oblak, right=of n2] {text};
\node   (n4) [box, right=of n3]   {text};
\draw[arr]  (n1-w) edge (n2) (n2) edge (n3) (n3) to (n4);
\end{tikzpicture}
\end{frame}
\end{document}


Addendum: in the case, that array in your MWE is intended that will be filled with dome text, than pic had to be replaced with array as is done in the following MWE:


\documentclass{beamer}
\usetheme{Warsaw}
\setbeamercolor{structure}{fg=cyan!90!black}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{array}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,
positioning,
shapes.symbols
}

\begin{document}
\begin{frame}
\frametitle{Process \dots}
\centering
\begin{tikzpicture}[
node distance = 9mm,
arr/.style = {-Stealth, semithick, shorten > = 1mm, shorten < = 1mm},
box/.style = {draw, minimum height=3cm, minimum width=2cm},
oblak/.style = {cloud, draw, aspect=2},
]
\node   (n1) [box, draw=none] {$\begin{array}{c|ccc} x & 1 & 2 & 3 \\ \hline &&& \\ &&& \\ &&& \end{array}$};
\node   (n2) [box, right=of n1] {text};
\node   (n3) [oblak, right=of n2] {text};
\node   (n4) [box, right=of n3]   {text};
\draw[arr]  (n1) edge (n2) (n2) edge (n3) (n3) to (n4);
\end{tikzpicture}
\end{frame}
\end{document}


which produce:

Here's a solution using tabular and the shrink option for frame.

\documentclass{beamer}
\usepackage{mathtools}
\usepackage{array}
\usepackage{amsmath}
\usepackage{tikz}

\usetikzlibrary{decorations.pathmorphing}

\usetheme{Warsaw}

\setbeamercolor{structure}{fg=cyan!90!black}

\begin{document}
\begin{frame}[shrink=30]

\frametitle{}

\begin{center}
\begin{tabular}{c c c c c c c c c}
\setlength{\extrarowheight}{3pt}% local setting
$\begin{array}{l|*{5}{l}} \cdot & & & & & \\ \hline & & & & & \\ & & & & & \\ & & & & & \\ & & & & & \\ & & & & & \\ \end{array}$

& $\to$ &

\begin{tikzpicture}[baseline=1.5cm]
\draw[draw=black] (0,0) rectangle ++(2,3);
\node at (1,1.5) {text1};
\end{tikzpicture}

& $\to$ &

\begin{tikzpicture}[baseline=0cm]
\draw plot[domain=0:350, smooth cycle] (\x:1+rnd*0.5);
\node at (0,0) {text2};
\end{tikzpicture}

& $\to$ &

\begin{tikzpicture}[baseline=1.5cm]
\draw[draw=black] (0,0) rectangle ++(2,3);
\node at (1,1.5) {text3};
\end{tikzpicture}

& $\to$ &

\begin{tikzpicture}[baseline=0cm]
\node at (0,0) {text4};
\end{tikzpicture}

\end{tabular}
\end{center}

\end{frame}
\end{document}


This is the result:

The vertical alignment of the text and arrows may not be to your satisfaction, but you can adjust that with the baseline option for the tikzpicture environments. I was also lazy and put the last text in a tikzpicture all by itself, but it doesn't have to be, though then you have more alignment issues (which in turn can be solved with \raisebox, but not prettily).

You can make longer arrows with \longrightarrow or just a tikz arrow, which can be any length / style.

Irregular shape taken directly from this answer.

• How to increase the size of the arrows – nice guy Feb 11 at 10:48
• @niceguy change every $\to$ to \tikz{\draw[->] (0,0)--(1,0);}. Change the 1 to something bigger to make the arrow longer. – Jānis Lazovskis Feb 11 at 11:30