Use annotate() to draw the arrows. This has a higher order API than arrow() that makes it easier to produce nice arrows.
Try to be smarter about avoiding overlapping arrows with expansion labels.
Example of output: