title: inverted diverging colour palette
body: <p>Quite often I use a diverging colour palette mapped to a parameter that has an interesting turning point somewhere near the middle. </p>
  
  <p>Unfortunately, available diverging palettes -- e.g. those from C. Brewer -- all seem to have saturated colours at the two extremes rather than in the middle, often defined as white or light grey. Here's one example for illustration</p>
  
  <p><img src="https://i.stack.imgur.com/DMdg8.png" alt="enter image description here"></p>
  
  <p>The continuous parameter indicated by the text labels passes through an optimum value where the peak of the associated curve reaches a maximum.</p>
  
  <p>On a light white or grey background (typical for ggplot2), the most interesting part of my data becomes almost invisible; I would like it to "pop" more, while values for either side fade gradually away from the centre, with a different tint. 
  Are there any sources of good diverging colour palettes that have a stronger saturation in the middle, and fade on both sides?</p>
  
  <p>Here's a sample code for illustration, picking black as a neutral middle point (I'd prefer something less dramatic, but it's hard to have it blend well with both sides).</p>
  
  <pre><code>require(RColorBrewer)
  grid.newpage()
  grid.raster(brewer.pal(7,"PRGn"), 0.25, 0.5, 0.4, 1)
  
  custom &lt;- c(brewer.pal(3,"BuPu"), "black", rev(brewer.pal(3,"BuGn")))
  grid.raster(custom, 0.75, 0.5, 0.4, 1)
  </code></pre>
  
  <p><img src="https://i.stack.imgur.com/epbp7.png" alt="enter image description here"></p>
  
  <p><em>Edit:</em> to clarify, I'm familiar with <code>colorRampPalette</code> and <code>scale_colour_gradientn</code>, I seek advice in</p>
  
  <p>1- choosing good colours for this purpose;</p>
  
  <p>2- defining a colour scale mapping the hand-crafted palette to a variable, similar to what <code>scale_colour_gradient2</code> does with the <code>mid</code> parameter (the central colour may not be at the exact centre of the parameter range)</p>