I would like to merge two colormaps into one, such that I can use one cmap for negative values and the other one for positive values.
At the moment I do it with masked arrays and plotting one image with one cmap and the other image with the other, resulting in:

with the following data
dat = np.random.rand(10,10) * 2 - 1
pos = np.ma.masked_array(dat, dat<0)
neg = np.ma.masked_array(dat, dat>=0)
I plotted pos with gist_heat_r and neg with binary.
I would like to have a single colorbar with the combined cmap's, so this is not the correct approach for me.
So, how do I take two existing cmaps's and merge them into one?
EDIT: I admit, this is a duplicate, but the answer that's given is much more clear here. Also the example images make it more clear.

