File Exchange

image thumbnail


version (4.63 KB) by cunjie zhang
matlab blue-white-red colorbar, while zero always corresponds to white color. see also darkb2r


Updated 09 Apr 2015

View License

this matlab file is designed to draw anomaly figures, the color of the colorbar is from blue to white and then to red, corresponding to the anomaly values from negative to zero to positive, respectively.
The color white always correspondes to value zero.

You should input two values like caxis in matlab, that is the min and the max value of color values designed. e.g. colormap(b2r(-3,5))

The brightness of blue and red will change according to your setting, so that the brightness of the color corresponded to the color of his opposite number
e.g. colormap(b2r(-3,6)) is from light blue to deep red
e.g. colormap(b2r(-3,3)) is from deep blue to deep red
I'd advise you to use colorbar first to make sure the caxis' cmax and cmin
colormap(b2r(-6,8)), colorbar, title('b2r')

There is also a similar colorbar named darkb2r with colors much darker.

Cite As

cunjie zhang (2020). b2r(cmin_input,cmax_input) (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (11)

Is it possible to make the color scale skewed? For example, if your most negative value is -30 and your most positive value is 5 have -30 be full blue and 5 be full red while white is still zero?


easy to use:However not very useful when negative values are very small as in my case

Very useful/helpful. Would be good if more colors may be added in the colorbar, colors similar to colormap(jet).


Excellent for its purpose.

Could I suggest the following:
When cmin is not equal to cmax then either blue or red is not assigned its full color intensity. The assigned colors are chosen and scaled depending on max([cmin,cmax]).
Could the blue and red colors be scaled independently with the most negative value taking the "most blue color" and the most positive value taking the "most red color"?

I used the colormap editor to manually assign to either color its full intensity and then save the colormap. But this defeats the point I guess.



I encounter an error when abs(cmin)>cmax. Adding 1 to start_point in line 90 seems to do the job.


Chad Greene

I use this several times each week. Thanks for sharing.



updated: Robert Beckman help to fix the bug when start point is zero, 2015-04-08.The bug exists when the absolute value of cmax and cmin is very near but not equal.

updated: Robert Beckman help to fix the bug when start point is zero, 2015-04-08. The bug exists when setted cmax and cmin is very near but not equal.

MATLAB Release Compatibility
Created with R2008b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Inspired: anomaly, Post-glacial rebound