\documentclass{article} \usepackage{tikz} \usetikzlibrary{arrows,shapes} \usepackage{dot2texi} \begin{document} % Define layers \pgfdeclarelayer{background} \pgfdeclarelayer{foreground} \pgfsetlayers{background,main,foreground} % The scale option is useful for adjusting spacing between nodes. % Note that this works best when straight lines are used to connect % the nodes. \begin{tikzpicture}[>=latex',scale=0.8] % set node style \tikzstyle{n} = [draw,shape=circle,minimum size=2em, inner sep=0pt,fill=red!20] \begin{dot2tex}[dot,tikz,codeonly,styleonly,options=-s -tmath] digraph G { node [style="n"]; A_1 -> B_1; A_1 -> B_2; A_1 -> B_3; B_1 -> C_1; B_1 -> C_2; B_2 -> C_2; B_2 -> C_3; B_3 -> C_3; B_3 -> C_4; } \end{dot2tex} % annotations \node[left=1em] at (C_1.west) (l3) {Level 3}; \node at (l3 |- B_1) (l2){Level 2}; \node at (l3 |- A_1) (l1) {Level 1}; % Draw lines to separate the levels. First we need to calculate % where the middle is. \path (l3) -- coordinate (l32) (l2) -- coordinate (l21) (l1); \draw[dashed] (C_1 |- l32) -- (l32 -| C_4); \draw[dashed] (C_1 |- l21) -- (l21 -| C_4); \draw[<->,red] (A_1) to[out=-120,in=90] (C_2); % Highlight the A_1 -> B_1 -> C_2 path. Use layers to draw % behind everything. \begin{pgfonlayer}{background} \draw[rounded corners=2em,line width=3em,blue!20,cap=round] (A_1.center) -- (B_1.west) -- (C_2.center); \end{pgfonlayer} \end{tikzpicture} \end{document}