All this brings to mind something I wanted to bring up anyway: we have a proliferation of backends, and occasional requests for more--are there any we can simply drop now, or soon? For example, gd? And what are the prospects that several backends could be consolidated via cairo? And/or via more extensive subclassing?

I am worried that we are increasingly going to get into trouble with lack of up-to-date support for all these backends. Major improvements sometimes depend on backend changes, and the more backends we have that lack active maintainers, the harder this gets; and the worse for users, as features work on one backend but break on another.


John Hunter wrote:


"Eric" == Eric Firing <efiring@...229...> writes:

    > Martin, When I try your example with svn matplotlib, I get a
    > 34 MB eps file, and looking at it, I don't see much room for
    > making it smaller--there is one obvious optimization,
    > abbreviating "marker", but that's it. (The svg file is 456
    > MB!) So, maybe some major optimization has already been
    > done between mpl 0.87.2 and svn.

Yep, Darren got "draw_markers" properly implemented for backend PS.
This function is much better in time and space; I believe only *Agg
and PS implement it, but it could be ported over to SVG fairly easily
by modifying the PS implementation.

    > The bigger problem is that each file format has basic
    > characteristics and limitations. If you draw a million
    > markers and line segments, you are inevitably going to have
    > a big postscript file, unless the postscript backend somehow
    > detects the fact that almost all of your points are
    > indistinguishable and therefore deletes most of them--and
    > this is really asking too much of a plotting backend, I

Agg does this for draw_lines -- it drops points in the path that are
less one pixel away from the previous point.


This question triggers another one from myself (that was raised by

    I know that there is some traits lying in mpl. Will there be one day
some traitsUI code too, to generate GUI to modify properties of objects
one the display ? This is fully related to backends.
    I find that this is one of the most requested features for mpl by my
colleagues (mind you, not by myself).