Hi, I want to produce a scatter plot with markers that are
> not filled (empty markers). I note the following response
> to an earlier query regarding line2D
There is no easy way to do this well. You can set the facecolor of
the scatter RegularPolyCollection -- note that the property names
follow the standard names of matplotlib.patches, not matplotlib.lines
(eg facecolor, not markerfacecolor). To make the face colors
"invisible" you need to set the facecolor to be the same as the Axes
background color (eg "white") -- but this will not always deliver the
desired results. As you suggest, you need a way of saying "do not
draw the facecolor at all", eg facecolor=None, which is different that
drawing a facecolor as the background.
Unfortunately, None is overloaded in matplotlib, since it can mean
"use the default", which is a typical python idiom. But we often want
it to also mean "do not draw anything". As a result, some parts of
matplotlib have the ugly hack someprop=None to mean default and
someprop='None' to mean do nothing. This is slated for destruction,
when we implement a proper RC class that can distinguish between None
meaning use a default at class initialization time (which is a little
harder than using a default a module load time) and None meaning do
It would not be too hard in the short term to add the string 'None'
hack for the facecolor of regular polygon collections. If this is
sufficiently important to you, file a support request at the
sourceforge site and we'll add it to the list of things to do.