From: John H. <jdh...@ac...> - 2005-01-27 14:57:25
|
>>>>> "Chris" == Chris Barker <Chr...@no...> writes: Chris> anyway, to cut my rant short, here is my vote for Chris> matplotlib development (not that I get a vote, but Chris> hopefully I'll have time to help out someday) Hey, I live in Chicago -- we pioneered "vote early, vote often". Chris> 2) Improve the OO interface to make it just as easy to use. Do you have some suggestions which would make the OO interface easier to use? For concreteness, here is the archetypal OO script from matplotlib.backends.backend_svg import FigureCanvasSVG from matplotlib.figure import Figure fig = Figure() ax = fig.add_subplot(211) ax.plot([1,2,3]) ax.set_xlabel('time') canvas = FigureCanvasSVG(fig) canvas.print_figure('myfile.svg') Things that leap to my mind: * hide the complexity of having both a canvas and the figure from the user, allowing them to deal only with figures, or at least have the figure store a ref to its canvas and allow you to do fig.savefig('myfig') which can forward the call on to its canvas print_figure method. This would bring the OO interface closer to the pylab interface and would prevent you from having to remember which methods were fig methods and which methods were canvas methods. We could also provide a pylab independent factory function that instantiates a figure and canvas with the relevant initialization, allowing you to do something like fig, canvas = figure_factory(*args, **kwargs) # use the current backend but I'm not sure how advisable it is to hide this complexity because what you ultimately do with the objects depends on whether you are using a GUI backend or not. But for pure image backends it would be possible to have a single OO interface which works across backends. * move the (few) remaining pylab only methods (axis, colorbar) into the OO framework for full compatibility * use properties/traits so you could do ax.xlabel = 'hi mom' while retaining the setters and getters for backwards compatibility * provide more pure OO examples in the examples directory * significant;y expand the OO section of the user's guide Do you have additional ideas? Or are these the issues your were thinking of? JDH |