I'd like to draw some bow-tie diagrams, which are diagrams for modelling risk, particularly for businesses like oil and gas and transport.

In the centre, there is a "top event", and there are zero or more "threats" and "consequences" on the left and right hand sides respectively. The threats and consequences can have zero or more "controls", which stop threats causing the top event, or mitigate the consequences if a top event occurs. The controls can have zero or more "escalation factors", which are child nodes that prevent the control from being effective.

It's a pretty basic qualitative model and rather like a tree. There is proprietory software to draw these models but the images are hideous.

I'm quite new to Tikz but the Tikz manual is a thing of wonder. What is the best way to draw one using Tikz? Should I use a mind map?

  • 5
    Can you post a picture of what you would like to have? Did you try something already? Perhaps you could post a MWE too?
    – Count Zero
    Apr 18, 2013 at 21:24
  • @johntait.org kindly absorb your comments and images inside question for clarity with EDIT:.In this way question gets pushed back into TeX.SX front page roll Apr 19, 2013 at 5:35
  • Also kindly place a good quality screenshot of image example inside the question so it becomes standalone irrespective of broken urls over time to benefit future users/viewers. may be MWE to get good attention. Apr 19, 2013 at 5:51

1 Answer 1


There are many options for tree-like diagrams with LaTeX as dirtree, qtree, pst-tree and tikz packages, with or without library trees and others (shape, etc.).

An example with TikZ:



\begin{tikzpicture}[level distance=5em,sibling distance=4em,every node/.style={fill=green!50,rectangle,rounded corners, inner sep=1em}
child[grow=right] {node[fill=cyan!50]{1}
child {node{c}} child {node{b}} child {node{a}}
} % con linea en blanco nuevo child empieza aqui
child[grow=down] { node[fill=cyan!50]{2}
child {node{f}} child {node{e}} child {node{d}}
child[grow=left] { node[fill=cyan!50]{3}
child {node[fill=yellow,circle]{End}} child {node{h}} child {node{g}}
}; %ojo con el punto y coma final




You must log in to answer this question.

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