Code covered by the BSD License  

Highlights from
cbrewer : colorbrewer schemes for Matlab

4.9 | 17 ratings Rate this file 178 Downloads (last 30 days) File Size: 85.6 KB File ID: #34087 Version: 1.1
image thumbnail

cbrewer : colorbrewer schemes for Matlab


Charles (view profile)


06 Dec 2011 (Updated )

This function loads colormaps based on the color brewer schemes (

| Watch this File

File Information

This function produces a colorbrewer table (rgb data) for a given type, name and number of colors of the colorbrewer tables. For more information on 'colorbrewer', please visit:
 The tables were generated from an MS-Excel file provided on the website
This function also allows to use a variable number of colors for each colortable by interpolating the RGB indices
Based on the original data, there is only a certain number of colors available for each color scheme. When 'ncol' is larger then the maximum number of colors originally given, an interpolation routine is called (interp1) to produce an "extended" colormap.
To see the various colormaps available according to their types and names, simply call: cbrewer()
This product includes color specifications and designs developed by Cynthia Brewer (


This file inspired Steamgraph, Continuum Undergoing Combined Elasto Plasto Damage Transformation., Rgbmap Color Maps, Paruly, Cubehelix Colormaps: Beautiful, Distinct, Versatile!, Intuitive Rgb Color Values From Xkcd, and Color Brewer: Attractive And Distinctive Colormaps.

Required Products MATLAB
MATLAB release MATLAB 7.9 (R2009b)
MATLAB Search Path
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (24)
24 Sep 2015 denny

denny (view profile)

Great function. easy to use. keep up the great work. Many thanks.

Comment only
24 Sep 2015 denny

denny (view profile)

21 Sep 2015 Stephen Cobeldick

I have no problem if you received Ms Brewer's permission to distribute her data. This is great news!

It is usual with copyrighted information to either include the appropriate license, or if permission was granted by the copyright holder to clearly state that permission was granted for that use.

But this permission is not stated anywhere in your comments, in your code, in your license, or in your description. This is the very first time that you have mentioned it.

Unless you state that you have this permission (and this is the first time), then how am I (or anyone else) supposed to know that this is the case? My mind-reading ability is a bit rusty, so I apologize if I was not able to read your private emails and know that your have this permission.

Comment only
18 Sep 2015 Charles

Charles (view profile)

I got Mrs Brewer's permission in writing when I wrote the code. She didn't have any problem with it so I don't why you do.

Comment only
18 Sep 2015 Stephen Cobeldick

Note that this submission still breaks the license conditions of Cynthia Brewer's ColorBrewer colorschemes, which require her APACHE license to be included:

Comment only
18 Sep 2015 Charles

Charles (view profile)

I updated the function to correct the problem pointed out by Katak. I also added a new script that should help create a jet-like color table based on different RGB "references" (see change_jet.m), as a reply to Chavdar.

Comment only
17 Sep 2015 Katak Goreng

Hi Charles,
Many thanks for you contribution. Excellent toolbox.
I just would like to point out 1 thing. Loading the colorbrewer.mat, there is 9 color maps. However, when you type brewer in command line, only 8 are displayed. "spectral" map was not shown. Typing "spectral" would load the colormap just fine though.

02 Sep 2015 cheng joylin  
05 Aug 2015 Chavdar

Great tool! Great colors!

is there a chance that you could add a diverging map going from blue to green to red as in jet, but using the red and blue from your RdBu map and the third darkest green from your RdYlGn map?


18 Mar 2015 Elisa

Elisa (view profile)

11 Aug 2014 Genevieve  
05 Aug 2014 Stephen Cobeldick

Users wanting a more user-friendly version of the ColorBrewer colorschemes can try my submission, which is available here:

Rather than simply providing the data, it actually provides a function that can be used like any other standard colormap function in MATLAB ("hsv","jet","cool","hot","gray","bone",...).

For simple usage it requires only the map length and scheme name to define a colormap. The user can also set a default colorscheme and it can then be called exactly like any other MATLAB colormap function (i.e. a drop-in replacement). For colormaps larger than those defined by the original ColorBrewer data, it interpolates -all- of the ColorBrewer defined nodes for that colorscheme (not just the ones from the largest pre-defined colormap) to closer match the original ColorBrewer colormaps. Keeping all of the data in just one M-file means no file-clutter either!

Importantly my submission does NOT include any of the ColorBrewer data: these must be downloaded separately as an excel spreadsheet and are merged into the main M-file using a helper function (it is easy, and instructions are included!). The Color Brewer data are copyright under an Apache license:

Comment only
31 Jul 2014 Raul

Raul (view profile)

05 Jun 2014 Lieven Verbeke

Excellent! Easy to use as well.

22 Apr 2014 John D'Errico

John D'Errico (view profile)

As much as I like the idea, the implementation and the help could use some repair. It is not terribly friendly. It took me some time to figure out how to call it. I had to edit the code just to figure out the options, and to see that it is case sensitive, etc.

But once you figure out how to run the code, it should be useful. If you don't use it terribly often though, you may find yourself going through those explorations every time you need it.

Comment only
22 Apr 2014 G Yee

G Yee (view profile)

Wonderful colormaps! I've been looking for a 'qualitative' dark colormap to use for my colorblind boss.

Since I'm a newbie, it took me a while to figure out how to do 2-D plots with this. Here's my code:

% Generate color-blind friendly colormap
colors = colormap(cbrewer('qual', 'Dark2', N));

% Example plot
x = 1:5;
N = 12;

for i = 1:N
y = x*i; % some big calculation
figure(1); hold on;
p = plot(x,y, 'Color' ,colors(i,:), 'LineWidth', 2);

19 Apr 2014 Raul

Raul (view profile)

02 Oct 2013 Kirsten  
17 Sep 2013 Johannes Keyser

Beautiful maps, highly useful, Thanks a lot!

Just the zip archive could use a little cleaning (it contains unnecessary hidden files: ._cbrewer.m ._interpolate_cbrewer.m ._plot_brewer_cmap.m).

16 Jun 2013 Danny

Danny (view profile)

works perfectly. very easy to use and a great improvement over the Matlab defaults. Thank you!

13 Feb 2013 Antje

Antje (view profile)

13 Jun 2012 Richard

Since a colleague introduced me to Brewer colour schemes I've been looking for a way to use them in matlab without manually entering all the RGBs. Very useful.

20 Mar 2012 Jan Neggers

Jan Neggers (view profile)

24 Jan 2012 Andrew Bliss

Andrew Bliss (view profile)

Nice to see someone port these color scales to Matlab. Thanks!

[You don't need to include the hidden files or the preview jpg in the download].

18 Sep 2015 1.1

Minor fixes.
Fixed a bug where the 'spectral' color table did not appear in the preview. I also added a script that shows how to convert the jet colormap into a new one based on different "RGB" references (see change_jet.m).

Contact us