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.