I want to produce the following flow chart with smartdiagram and need some hints how to draw extra arrows and symbols.

enter image description here

So far I got this one

enter image description here

with the following code



\smartdiagram[flow diagram:vertical]{Define,
  Measure, Analyze, Improve, Control}


Any help, please.

3 Answers 3


I try to replicate your diagram using TikZ (because smartdiagram is also a package based on TikZ).

\documentclass[margin=3mm, tikz]{standalone}
    rectangle, draw,
    rounded corners=3pt, 
    minimum width=4cm,
    minimum height=0.7cm
    \node[rounded] (d) at (0,0) {[D] Define};
    \draw[thick,->] (4,0)--(d);
    \node[rounded] (m) at (0,-2) {[M] Measure};
    \draw[thick,->,color=black!30] (4,-2)--(m);
    \node[rounded] (a) at (0,-4) {[A] Analyze};
    \draw[thick,->,color=black!30] (4,-4.1)--(2,-4.1);
    \draw[thick,->,color=black!30] (2,-3.9)--(4,-3.9);
    \node[rounded] (i) at (0,-6) {[I] Improve};
    \draw[thick,->,color=black!30] (i)--(4,-6);
    \node[rounded] (c) at (0,-8) {[C] Control};
    \draw[thick,->] (c)--(4,-8);
    \draw[thick,->] (d)--(m);
    \draw[thick,->] (m)--(a);
    \draw[thick,->] (a)--(i);
    \draw[thick,->] (i)--(c);
    \draw[thick,->] (4,-8)--(4,0);

enter image description here

  • Thanks @JouleV for your answer. Would highly appreciate if you point out how to add the symbols from [C] Control to [D] Define. Thanks
    – MYaseen208
    Jan 13, 2019 at 11:09
  • 1
    @MYaseen208 I don't really understand what you mean. Do you want the arrow from [C] to [D] is a "continuous" arrow, i.e. it is one arrow instead of three successive arrows?
    – user156344
    Jan 13, 2019 at 11:27

smartdiagram gives the nodes names module\X where \X is an integer. This can be exploited. (I am not sure I interpreted "extra symbols" correctly, but of course you can add any symbol instead of the arrow heads.)

\tikzset{every picture/.append style={remember picture}}

\smartdiagram[flow diagram:vertical]{Define,
  Measure, Analyze, Improve, Control}
 \foreach \X in {2,4}
 {\draw[stealth-,line width=1mm,red!40] (module\X.east) -- ++ (0.5,0) coordinate
 \draw[-stealth,line width=1mm,red!40] ([yshift=1.5mm]module3.east) -- ++ (0.5,0)
 coordinate (aux-3);
 \draw[stealth-,line width=1mm,red!40] ([yshift=-1.5mm]module3.east) -- ++ (0.5,0);
 \draw[-stealth,line width=1mm,red!40] (module5.east) -- ++ (0.5,0) coordinate (aux-5);
 \path (module1.east) -- ++ (0.5,0) coordinate (aux-1);  
 \foreach \X [remember=\X as \Y (initially 1)] in {2,...,5}
 {\path (aux-\Y) -- (aux-\X) coordinate[pos=0.4](mid-\X);
 \draw[-stealth,line width=1mm,red!40] (aux-\X) -- (mid-\X);}

enter image description here


one more tikz solution. with use of the tikz libraries arrows.meta (for arrows) and chains (for put nodes in chain) the mwe is:

\documentclass[margin=3mm, tikz]{standalone}
\usetikzlibrary{arrows.meta, chains}

node distance = 4mm,
  start chain = A going below,
   arr/.style = {-Triangle, semithick},
   box/.style = {rectangle, draw, rounded corners,
                 minimum width=33mm, minimum height=6mm,
                 on chain=A, join=by arr}
\node[box]  {[D] Define};       % A-1
\node[box]  {[M] Measure};
\node[box]  {[A] Analyze};
\node[box]  {[I] Improve};
\node[box]  {[C] Control};      % A-5
\draw[arr]  (A-5.east) -- ++ (1,0) coordinate (aux)
                       |- (A-1);
\draw[arr, gray]
    (A-2 -| aux) edge (A-2)
    ([yshift=+3pt] A-3.east)          edge ([yshift=+3pt] A-3.east-| aux)
    ([yshift=-3pt] A-3.east -| aux)   edge ([yshift=-3pt] A-3.east)
    (A-4)         to  (A-4 -| aux);

enter image description here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .