On Wed, Jul 01, 2009 at 08:39:30AM -0500, John Hunter wrote:
> Anyone interested?  And if so, feel free to suggest topics or weigh in
> on some I listed.

Actually, I have something I would like to discuss, but never really
could pull myself together to do it. I don't have time right now, but I
am still going to jot down the ideas.

The axes and figure paradigm inherited from matlab works well for simple
things, but when I want to more complex layouts, I actually end up
struggling with calls to axes with numerical parameters to adjust. In
addition, if I have a function that creates a plot with multiple axes,
like the figure on:
http://neuroimaging.scipy.org/site/doc/manual/html/neurospin/activation_map.html
I may want to reuse that function to create more complex figures,
stacking several of these views, with possibly other plots.

It seems to me having a level of granularity between the figure, and the
axes would help me a lot achieving these goals. I haven't had time to
hash out an API, or even solid concepts. For people who know LaTeX well,
let me draw an analogy: the figure is the page, the axis is the
character, what we are lacking in a 'minipage'. I would like a container
that can be stacked into a figure, and that can either hold axes, or
similar containers. That way, I could specify subplot, or axis relative
to this container, rather than relative to the whole figure, and it makes
it really easy for me to insert figures in larger figures.

One possible API would be 'subfigure', which would have a signature
similar to 'axes', but of course things would need to be thought a bit
more in detail: do we want clf to erase the figure and not the subfigure?
I believe so. Do we want subplot to divide the subfigure, rather than the
figure? I believe so too. How do we go back to full figure without
erasing the subfigures it contains? I think subfigure(None) might work.
How do I select a subfigure I already created? Maybe by passing it a
subfigure instance, like the way axes work.

Also, Chaco has the notion of containers, in which you can stack plots or
other containers. They have an additional feature which is that they
enable you to stack plot (these would be axes, in matplotlib terms) and
do an automatic layout of the plots. Very handy to have an extensible
canvas to display information on. Some sparse documentation:
http://code.enthought.com/projects/chaco/docs/html/api/containers.html

I have been trying to find time to think about this for more than a year,
and haven't. This is why I am sending unfinished thoughts. I do believe
more thinking has to be done, and the subfigure proposition may not hold
at all. Also, I fear I do not have time to implement this.

My 2 cents,

Gaƫl

------------------------------------------------------------------------------
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Reply via email to