I'm trying to create a custom colormap used with pcolormesh, but the
results seem inconsistent to me. I want the following colors
-3 < x <= -2 ----- Black
-2 < x <= -1 ----- Blue
-1 < x <= 0 ----- Yellow
0 < x <= 1 ----- Green
1 < x <= inf ----- Red
A minimal example is copied below. I have a 2-D array that looks like:
-1, 6, 2.5
1.3, -2, 4/3
2.5, 6, 0
I want to get a pcolormesh that looks like
R R Y
R K R
B R R
But instead I get:
Y R B
Y K Y
K R Y
I recognize that the pcolormesh is plotted "upside-down" from how the
matrix is printed. I apparently don't understand how to use a custom
colormap. I have tried to follow the example here:
http://matplotlib.sourceforge.net/examples/api/colorbar_only.html
but haven't been too successful. It seems like there is a
normalization going on that I can't seem to track down. Can anyone
see what is wrong?
Thanks,
Jeremy
import numpy
import matplotlib.pyplot as pyplot
import matplotlib.colors
C = numpy.array([[-1,6,2.5],[4/3., -2, 4/3.],[2.5,6,0.0]],dtype=float)
cMap = matplotlib.colors.ListedColormap(['k', 'b', 'y', 'g', 'r'])
Bounds = [-3.0, -2.0, -1.0, 0.0, 1.0, numpy.inf]
# Plot
Fig = pyplot.figure()
pyplot.pcolormesh(C, cmap=cMap)