void DrawContinuousLegend( Plot plot, Matrix mTickLabels, Matrix mTickPos, Matrix mTitle, Matrix mLabelSize, Matrix mColorMap, Matrix mLegendSizeFrac, Matrix mLocation )
Plot plot
The plot to which the legend will be added.
Matrix mTickLabels
A vector of labels to accompany the color ramp. If the vector is numeric, the labels are created by applying the BEST10. format.
Matrix mTickPos
A vector of tick positions. Each element must be in [0, 1], with 0 corresponding to the bottom (or left side) of the color ramp and 1 corresponding to the top (or right side).
Matrix mTitle
A text string that appears above the color ramp. Typically this string identifies the quantity by which observations are colored.
Matrix mLabelSize
The point size (units of 1/72 inch) of the tick labels and title.
Matrix mColorMap
A k x 3 matrix or k x 1 vector of colors that defines the color ramp.
Matrix mLegendSizeFrac
A numeric vector of length 2 that specifies the size of the legend. mLegendSizeFrac[1] is a number in [0.01, 1] that specifies the width of the legend as a percentage of the
plot width. mLegendSizeFrac[2] is a number in [0.01, 1] that specifies the height of the legend as a percentage of the plot height.
Matrix mLocation
A text string that specifies the position of the legend within the plot. This string has the form "PX", where P is either I (inside the Plot Area) or O (outside the
Plot Area), and X is either L (left), R (right), T (top), or B (bottom). For example, common choices are "IL" (left side of the Plot Area), or "OR" (in the right graph margin).
The strings "OL" and "OB" are not supported.
This module draws a continuous legend on the plot. A continuous legend is a color ramp with a set of labels. A continuous legend indicates how observation colors relate to values of some quantity.
declare DataObject dobj;
dobj = DataObject.CreateFromFile( "Iris" );
declare ScatterPlot plot;
plot = ScatterPlot.Create( dobj, "SepalLen", "SepalWid" );
plot.SetMarkerSize( 7 );
/* color code observations by values of PetalLen */
dobj.GetVarData("PetalLen", z );
SubDiv = do(10,70,1); /* determines colors and values */
numColors = ncol(SubDiv)-1;
Colors = BLUE // CYAN // YELLOW // RED ;
ColorMap = BlendColors( IntToRGB(Colors), numColors );
c = RGBToInt( ColorMap );
do i = 1 to ncol(SubDiv)-1;
idx = loc( z >= SubDiv[i] & z < SubDiv[i+1] );
if type(idx)^='U' then
dobj.SetMarkerColor( idx, c[i,] );
end;
Ticks = do(10,70,10);
TickPos = (Ticks-10)/60; /* normalize to [0,1] */
LegendSizeFrac = {0.1, 0.7};
run DrawContinuousLegend( plot, Ticks, TickPos, "PetalLen",
8, ColorMap, LegendSizeFrac, "OR" );