auto-updating of axis limits

Is there an easy way to get pyplot to treat calls to text() or
annotate() as if they were "data", so that it automatically expanded
the axis limits to include the text within the plot boundaries (i.e.,
not in the margin)? My current workaround involves creating the text,
calling draw(), getting the text's bbox patch extents, transforming
those extents to data coordinates, and manually changing the ylim of
the axes object to something bigger than the transformed upper extent.
This seems rather roundabout to me, and I'm wondering if there's an
easier way. Here is a link to a github gist of an MWE illustrating
the problem, and my current workaround:

-- dan

Daniel McCloy
Postdoctoral Research Fellow
Institute for Learning and Brain Sciences
University of Washington