Ok, this was my bad. I was under the [mistaken] impression (and in
retrospect I'm not sure why) that the AxesGrid call just set up the
geometry and the plot calls actually created the axes.
Thanks for setting me straight.
M
On 1/11/12 9:05 PM, Paul Ivanov wrote:
> Hi Mike,
>
> Mike Kaufman, on 2012-01-11 19:30, wrote:
>> Given the code snippet below with clf() #1 uncommented works like one
>> would expect - both plots are drawn. If #1 is commented out and #2 is
>> uncommented, then the figure is cleared and neither plot is drawn. Is
>> this the correct behavior? It seems like a bug to me.
>
> Seems to me like this is the intended behavior and not a bug. I'm
> not sure what you were expecting to happen with that second call
> to clf. You're clearing the whole figure, so even though the
> axes you have in the grid variable have references to f, f has
> disowned them!
>
> In [39]: grid = AxesGrid(f, 111, (1,2))
>
> In [40]: f.axes
> Out[40]:
> [<mpl_toolkits.axes_grid1.axes_divider.LocatableAxes at 0xb7c002c>,
> <mpl_toolkits.axes_grid1.axes_divider.LocatableAxes at 0xb8948cc>,
> <mpl_toolkits.axes_grid1.axes_grid.CbarAxes at 0xb810dac>,
> <mpl_toolkits.axes_grid1.axes_grid.CbarAxes at 0xb97486c>]
>
> In [41]: plt.clf()
>
> In [42]: f.axes
> Out[42]: []
>
> Perhaps you wanted to simply to clear the individual axes? You
> can do that with [g.cla() for g in grid] instead of your call to
> plt.clf()
>
> best,
|