All Manuals > CAPI User Guide and Reference Manual > 23 LW-GT Reference Entries

NextPrevUpTopContentsIndex

generate-bar-chart

Function
Summary

Generate a list of drawing-objects which display the bars of a bar chart.

Package

lw-gt

Signature

generate-bar-chart values &key function start-position step-position width orientation colors title-position argument font base title-color absolute-p => bars

Arguments

values

A list.

function

A function of one or two arguments, depending on argument .

start-position

The position of the first bar.

step-position

The distance between bars.

width

The width of a bar.

orientation

One of the keywords :rightward, :leftward, :downward and :upward.

colors

A list of colors.

title-position

One of the keywords :middle, :top, :bottom, :right and :left, or nil.

argument

A Lisp object.

font

A font specification.

base

The position of the "base" of each bar.

title-color

A color specification.

absolute-p

A boolean.

Values

bars

A list of drawing-objects.

Description

The function generate-bar-chart generates a list of drawing-objects which display the bars of a bar chart.

values is a list giving the values that need displaying. There is a bar for each element in the list.

For each element in values , generate-bar-chart uses the function function to find the length of the bar and a title to add to it. If argument is non-nil, function is called with two arguments: argument and the element of values . Otherwise, function is called with one argument, the element. function must return the length of the bar, and optionally the title as a second return value. The default value of argument is nil.

If function is not supplied, the default function checks if the element is a list, and if it is returns the first element of it as the length and the second element as the title. If it is not a list it returns it and nil as the second value.

generate-bar-chart then generates a drawing-object that draws the bar, which is a rectangle with length being the result of the function and width the width argument. The default value of width is 1.

For orientation :upward or :downward, the "length dimension" is vertical, and the "width" dimension is the horizontal, and the reverse for the other orientations. The default value of orientation is :upward.

The position of the rectangle in the "length dimension" is from base to (+ base length) for orientation :upward and :leftward, and from base to (- base length) for the other orientations. The default value of base is 0.

start-position and step-position determine the position of the center of the rectangle in "width dimension". Hence the position of the n 'th rectangle in the "width dimension" is from

(- (+ start-position (* (1- n ) step-position )) (/ width 2))

to

(+ (+ start-position (* (1- n ) step-position )) (/ width 2))

The default value of start-position is 1. The default value of step-position is (* 3 width ).

The color of the rectangle is taken from the colors list in turn, starting from the beginning when reaching the end. The default value of colors is (:red :green :blue :yellow :purple).

generate-bar-chart then also computes where the string should appear with respect to the bar, depending on title-position , generates a drawing object using make-draw-string, passing it the font , absolute-p and title-color . title-position nil means the end of the bar. The default value of font is the font of the pane. absolute-p determines whether the title is drawn in absolute mode. The default value of absolute-p is t.

See also

drawing-object
Lower level - drawing objects and objects displayers


CAPI User Guide and Reference Manual (Unix version) - 3 Aug 2017

NextPrevUpTopContentsIndex