File Exchange

image thumbnail

Colormap that looks good when printed grayscale

version (12.3 KB) by Fab
Defining colors to exploit both the color and intensity contrasts good for grayscale


Updated 13 Oct 2015

View License

The endless quest of defining a colormap that looks good when printed in grayscale has ended.
This library allows the definition of rgb colors so that they can be picked for maximum contrast between their Hue and the equivalent grayscale intensity. The library uses the HSV convention, and calculates the S and V values for other palettes required to reflect the grayscale intensity of the red color. In this way, you can input colors by specifying color type (Hue) and grayscale intensity (Int), and you can be assured that when multiple colors are printed in grayscale, the resulting intensity is matched. The library includes the matrix of S and V conversions "HSVBWColormap.mat" and the function HInt2RGB that creates RGB values.
Example on how to use the file, to define a 6 colors colormap. Note that, with the addition of white and black, this allows use of 8 colors when needed.

rgb(1,:)=HInt2RGB(1,100); % red, darkest
rgb(2,:)=HInt2RGB(7,82); % cyan, less dark
rgb(3,:)=HInt2RGB(3,64); % green, less dark
rgb(4,:)=HInt2RGB(9,46); % magenta, less dark
rgb(5,:)=HInt2RGB(2,28); % orange, less dark
rgb(6,:)=HInt2RGB(7,10); % blue cyan, lightest

X=[0 1 1 0];
Y=[0 0 1 1];


Note that the resulting darkness is decreasing, and the colors change maximizing contrast (change in Hue between adjacent patches is 120-180 deg).


Cite As

Fab (2021). Colormap that looks good when printed grayscale (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (2)

Bethany Little

This is a great idea but I have to say the colors in the example are so ugly. I wonder if anyone has found a way to make this aesthetically pleasing?

Stephen Cobeldick

MATLAB users might also be interested in my FEX submission |cubehelix|, which offers beautiful colormaps that print properly in grayscale (retaining the sequence information). My submssions is also a drop-in replacement for the standard MATLAB colormap functions, so you can use it straight away:


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

Inspired: squink(Colors,Gamma), jetwhite(Colours)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!