[Numpy-discussion] matplotlib is breaking numpy

John Hunter jdh2358 at gmail.com
Thu Nov 19 13:30:38 EST 2009

On Nov 19, 2009, at 11:57 AM, Robert Kern <robert.kern at gmail.com> wrote:

> On Thu, Nov 19, 2009 at 11:52, Mathew Yeates <mat.yeates at gmail.com>  
> wrote:
>> There is definitely something wrong with matplotlib/numpy. Consider  
>> the
>> following
>>> from numpy import *
>>> mydata=memmap('map.dat',dtype=float64,mode='w+',shape=56566500)
>>> del mydata
>> I can now remove the file map.dat with (from the command line) $rm  
>> map.dat
>> However
>> If I plot  mydata before the line
>>> del mydata
>> I can't get rid of the file until I exit python!!
>> Does matplotlib keep a reference to the data?
> Almost certainly.
>> How can I remove this
>> reference?
> Probably by deleting the plot objects that were created and close all
> matplotlib windows referencing the data. If you are using IPython, you
> should know that many of the returned objects are kept in Out, so you
> will need to clear that. There might be some more places internal to
> matplotlib, I don't know.

Closing the figure window containg the data *should* be enough. In  
pylab/pyplot, this also triggers a call to gc.collect.

> With some care, you can use gc.get_referrers() to find the objects
> that are holding direct references to your memmap.
> -- 
> Robert Kern
> "I have come to believe that the whole world is an enigma, a harmless
> enigma that is made terrible by our own mad attempt to interpret it as
> though it had an underlying truth."
>  -- Umberto Eco
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion

More information about the NumPy-Discussion mailing list