John

> I modified pylab (and every backend, damn there are a lot) to support
> this feature.  

Wow, impressive ! Thx a lot

> Now you can pass a FigureClass kwarg to the pylab 
> figure function.  With minimal extra work, we could support defaults
> so you don't have to explicitly pass it.  But before I go ahead with
> this, take a look and see if this is more like what you had in mind.

Yep indeed, that's pretty much what I was considering. And parsing the 
MyFigure arguments through keywords seems the easiest, I'll keep that in mind 
(I used optional arguments *args, as they're not used in Figure, but that's 
trickier to keep track of).

Now, till we (you ;)) are it, what about updating Figure.add_subplot() to call 
user-defined subplots ? I wrote something along the lines below for my own 
needs, but that might be a useful addition...

Initial add_subplot
add_subplot(self, *args, **kwargs):
        ...
        if isinstance(args[0], Subplot) or isinstance(args, PolarSubplot):
            a = args[0]
            a.set_figure(self)
        else:
            ispolar = popd(kwargs, 'polar', False)
            if ispolar:
                a = PolarSubplot(self, *args, **kwargs)
            else:
                a = Subplot(self, *args, **kwargs)
        ...

Modified add_subplot
add_generic_subplot(figure, subplotclass, *args, **kwargs):
        ...
        if isinstance(args[0], Subplot):
            a = args[0]
            a.set_figure(self)
        else:
            a = subplotclass(self, *args, **kwargs)
        ...

That way, if you need a PolarSubplot, you can still get it. Well, we'd have to 
make PolarSubplot a subclass of Subplot instead of Subplotbase, but that 
should be easy to implmnt.



> from pylab import figure, show, nx
> from matplotlib.figure import Figure
>
> class MyFigure(Figure):
>     def __init__(self, *args, **kwargs):
>         """
>         custom kwarg figtitle is a figure title
>         """
>         figtitle = kwargs.pop('figtitle', 'hi mom')
>         Figure.__init__(self, *args, **kwargs)
>         self.text(0.5, 0.95, figtitle, ha='center')
>
> fig = figure(FigureClass=MyFigure, figtitle='my title')
> ax = fig.add_subplot(111)
> ax.plot([1,2,3])
> fig.savefig('test.png')
> fig.savefig('test.ps')
> show()
>
>
>
>
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users

All the advantages of Linux Managed Hosting--Without the Cost and Risk!
Fully trained technicians. The highest number of Red Hat certifications in
the hosting industry. Fanatical Support. Click to learn more
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=107521&bid=248729&dat=121642
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to