Symmetric Colormaps?

I'm trying to define a custom colormap that is blue for -ve values, red for +ve values, and white at 0. To this end, I've defined a new colormap with the following entries:

_redblue_data = {'red': ((0.0, 0.0, 0.0),(0.5, 1.0, 1.0),(1.0, 1.0, 1.0)),
                'green': ((0.0, 0.0, 0.0),(0.5, 1.0, 1.0),(1.0, 0.0, 0.0)),
                'blue': ((0.0, 1.0, 1.0),(0.5, 1.0, 1.0),(1.0, 0.0, 0.0))}

However, when I use this to plot a contourf of my data (setting the contour levels to be 0), the contour just below 0 is light blue, and the contour just above 0 is white. In other words, instead of being symmetrical, the 'center' of the colormap is shifted towards the +ve. Is there any way to make the colormap symmetric around 0?

I'm using matplotlib-0.80.

Jordan