title: Merge colormaps in matplotlib
body: <p>I want to merge two colormaps for an imshow plot. I want to use 'RdBu' for the range -0.4 to 0.4, then from 0.4 to the maximum value (say 1.5) I want to use a gradient from the same blue to another color (say green for example).</p>
  
  <p>How can I do that?</p>
  
  <p>This is how far I got so far:</p>
  
  <pre><code>import numpy as np
  import matplotlib.pyplot as plt
  import matplotlib.colors as colors
  from matplotlib.mlab import bivariate_normal
  
  N = 100
  '''
  Custom Norm: An example with a customized normalization.  This one
  uses the example above, and normalizes the negative data differently
  from the positive.
  '''
  X, Y = np.mgrid[-3:3:complex(0, N), -2:2:complex(0, N)]
  Z1 = (bivariate_normal(X, Y, 1., 1., 1.0, 1.0))**2  \
      - 0.4 * (bivariate_normal(X, Y, 1.0, 1.0, -1.0, 0.0))**2
  Z1 = Z1/0.03
  
  # Example of making your own norm.  Also see matplotlib.colors.
  # From Joe Kington: This one gives two different linear ramps:
  
  class MidpointNormalize(colors.Normalize):
      def __init__(self, vmin=None, vmax=None, midpoint=None, clip=False):
          self.midpoint = midpoint
          colors.Normalize.__init__(self, vmin, vmax, clip)
  
      def __call__(self, value, clip=None):
          # I'm ignoring masked values and all kinds of edge cases to make a
          # simple example...
          x, y = [self.vmin, self.midpoint, self.vmax], [0, 0.5, 1]
          return np.ma.masked_array(np.interp(value, x, y))
  
  fig, ax = plt.subplots(1, 1)
  
  minValue = Z1.min()
  maxValue = 0.4
  
  pcm = ax.imshow(Z1,
                  norm=MidpointNormalize(midpoint=0.),
                  vmin=minValue, vmax=maxValue,
                  cmap='RdBu',
                  origin='lower',
                  aspect=1.0,
                  interpolation='none')
  cbar = fig.colorbar(pcm, ax=ax, extend='both', ticks=[minValue, 0.0, maxValue])
  
  fig.tight_layout()
  
  plt.show()
  </code></pre>
  
  <p><a href="https://i.stack.imgur.com/jvAJZ.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/jvAJZ.png" alt="enter image description here"></a></p>