I added a fast polygon drawing collection class and backend renderer
method.
For large scatter plots (50000 points), the performance is 5 times
faster across all backends and 10 times faster for the *Agg backends.
Also, scatter works with many symbols: diamonds, sqaures, oriented
triangles, circles and more. Currently these are all regular polygons
but I can add more later when I finish general polygon collections and
line collections.
The scatter command returns a collection instance rather than a list
of patches as before. If you are setting properties on the return
values of scatter plots, you *may* need to change some code to use
methods appropriate for collections, though the user API is largely
compatible. See matplotlib.collections.
Also the size argument is now in points^2 (the area of the symbol in
points) and is not in data coords as before. This fixes a few
problems: symbols are not skewed by unequally shaped axes, scatter
works with log coords w/o distoring the symbol, and it is matlab
compatible.
The function scatter_classic is the old scatter function and will work
identically.
Let me know how this works with your scatter code, particularly if it
breaks it!
JDH