There is now a section of the documentation describing how color mapping and normalization works
The way that matplotlib
does color mapping is in two steps, first a Normalize
function (wrapped up by the sub-classes of matplotlib.colors.Normalize
) which maps the data you hand in to [0, 1]
. The second step maps values in [0,1]
-> RGBA space.
You just need to use the LogNorm
normalization class, passed in with the norm
kwarg.
plt.scatter(x,y,edgecolors="none",s=marker_size,c=void_fraction,
norm=matplotlib.colors.LogNorm())
When you want to scale/tweak data for plotting, it is better to let matplotlib
do the transformations than to do it your self.