I added an (experimental) bbox_inches option for savefig in the trunk.
If provided, only the specified area of the figure will be saved.
bbox_inches can be "tight", and a tight bounding box is internally
estimated (but this draws the figure twice).
Take a look at "demo_tightbbox.py".
The implementaion is a bit experimental, and it would be appreciated
if others test and review the changes.
When bbox_inches is given, savefig temporarily modifies fig.bbox,
fig.bbox_inches and fig.transFigure._boxout.
The algorithm to determine the tight bbox is rather primitive and
should be improved.