Garbage collection?

Good -- this indicated matplotlib proper is not leaking, so

    > it is a figure management problem. You may want to inspect
    > _pylab_helpers to see if it is storing references you don't
    > want it to.

Here is a little demo to help you if you want to poke into the pylab
helpers data structures. Note you should not manipulate these
structures directly, but through the pylab API

In [2]: import matplotlib._pylab_helpers as ph

In [3]: ph.Gcf.figs
Out[3]: {}

In [4]: figure()
Out[4]: <matplotlib.figure.Figure instance at 0xb5b91e4c>

In [5]: ph.Gcf.figs
Out[5]: {1: <matplotlib.backends.backend_gtkagg.FigureManagerGTKAgg
instance at 0xb5b91f4c>}

In [6]: figure()
Out[6]: <matplotlib.figure.Figure instance at 0xb5b9180c>

In [7]: ph.Gcf.figs
{1: <matplotlib.backends.backend_gtkagg.FigureManagerGTKAgg instance
at 0xb5b91f4c>,
2: <matplotlib.backends.backend_gtkagg.FigureManagerGTKAgg instance
at 0xb5b91b4c>}

In [8]: close(1)

In [9]: ph.Gcf.figs
Out[9]: {2: <matplotlib.backends.backend_gtkagg.FigureManagerGTKAgg
instance at 0xb5b91b4c>}