Back: 3.2.3 gridxy Forward: 3.2.5 Color model     FastBack: 3. Graphics Up: 3.2 Plot limits and relatives FastForward: 4. Embedding Compiled Routines Inside Yorick         Top: Yorick: An Interpreted Language Contents: Table of Contents     About: About This Document

3.2.4 palette

The plf, pli, and plfp commands require a color scale or palette, which is a continuum of colors to represent the continuous values of a variable. Actually, a palette consists of a finite number of (red, green, blue) triples, which represent a color for each of a finite list of values. A Yorick palette can never have more than 256 colors, so that a type char variable (one byte per item) can hold any index into a palette. Because many screens can display only 256 colors simultaneously, however, you shouldn’t have more than about 200 colors in a palette; that is the size of all of Yorick’s predefined palettes.

The palette command allows you to change palettes. The Yorick distribution comes with predefined palettes called ‘earth.gp’ (the default palette), ‘gray.gp’, ‘yarg.gp’, ‘heat.gp’, ‘stern.gp’, and ‘rainbow.gp’. To load the gray palette, you would type:

 
palette, "gray.gp"

These palettes tend to start with dark colors and progress toward lighter colors. The exceptions are ‘yarg.gp’, which is a reversed version of ‘gray.gp’ (your picture looks like the photographic negative of the way it looks with the ‘gray.gp’ palette), and ‘rainbow.gp’, which runs through the colors in spectral order at nearly constant intensity. Besides ‘gray.gp’ (or ‘yarg.gp’) and ‘rainbow.gp’, it’s tough to find color sequences that people have been trained to think have an order. The ‘heat.gp’ palette is a red-orange scale resembling the colors of an iron bar as it grows hotter. The default ‘earth.gp’ is loosely based on mapmaker’s colors from dark blue deep ocean to green lowlands to brown highlands to white mountains.

Instead of a file name, you may pass palette three arrays of numbers ranging from 0 to 255, which are relative intensities of red, green, and blue. For example,

 
scale = bytscl(indgen(200),top=255);
palette, scale,scale,scale;

produces the same palette as ‘gray.gp’, but by direct specification of RGB values, rather than by reading a palette file.

Yorick internally uses the bytscl function to map the z values in a plf, pli, or plfp command into a (0-origin) index into the palette. Occasionally, as here, you will also want to call bytscl explicitly.

The predefined palette files are in the directory Y_SITE+"gist"; you should be able to figure out their format easily if you want to produce your own. If you create a directory ‘~/Gist’ and put your custom palette files there, Yorick will find them no matter what its current working directory. The library include file ‘color.i’ includes functions to help you construct palettes, and a dump_palette function which writes a palette in Yorick’s standard format.

You can use the query= keyword to retrieve the RGB values for the currently installed palette:

 
local r,g,b;
palette,query=1, r,g,b;

There is also a private= keyword to palette, which you should investigate if you are interested in color table animation, or if other programs steal all your colors.


Back: 3.2.3 gridxy Forward: 3.2.5 Color model     FastBack: 3. Graphics Up: 3.2 Plot limits and relatives FastForward: 4. Embedding Compiled Routines Inside Yorick         Top: Yorick: An Interpreted Language Contents: Table of Contents     About: About This Document