What is the best way to draw this in TIKZ?

enter image description here

I was thinking I could define a custom shape with this "arrow" form, but did not really figure out how to achieve this. Maybe there are better solutions?

  • 1
    See here for a question with a similar scope and title.
    – user194703
    May 14, 2020 at 16:15
  • @Schrödinger'scat I too remembered and searched the same, but couldn't able to get the link, thanks...
    – MadyYuvi
    May 15, 2020 at 4:35

2 Answers 2


Please try with this:


[every node/.style={single arrow,draw=none,single arrow head

\tikzset{product size/.style={minimum width=2cm, 
    minimum height=15pt,
    text height=1ex,
  product/.style={ % removed fill and text colour setting
    signal to=east, 
    signal from=west,
    product size,
 % changed from "\x in" to "\x/\clr in"
 \foreach [count=\xi, count=\prevx from 0] \x/\clr in {#1}{%
    % added fill=\clr,signal from=none
    \node[product,fill=\clr,signal from=none] (x-\xi) {\x};
    % added fill=\clr
    \node[product,fill=\clr,anchor=west] (x-\xi) at (x-\prevx.east) {\x};

% "text/colour name", instead of just "text"


\arrowtext{Arrow 1}{Arrow 2}{Arrow 3}{Arrow 4}


enter image description here


enter image description here

\usetikzlibrary {decorations.shapes,shapes.symbols,calc}

                    every node/.style={signal, draw, text=white, signal to=nowhere}
\node[fill=green!65!black, signal to=east] at (0,1) {To East};
\node[fill=red!65!black, signal from=east] at (0,0) {From East};


You must log in to answer this question.

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