Next: print-Y-axis Penultimate, Previous: Y Axis Element, Up: print-Y-axis [Contents][Index]
The preceding functions provide all the tools needed to construct a function that generates a list of numbered and blank strings to insert as the label for the vertical axis:
(defun Y-axis-column (height width-of-label) "Construct list of Y axis labels and blank strings. For HEIGHT of line above base and WIDTH-OF-LABEL." (let (Y-axis)
(while (> height 1)
(if (zerop (% height Y-axis-label-spacing))
;; Insert label.
(setq Y-axis
(cons
(Y-axis-element height width-of-label)
Y-axis))
;; Else, insert blanks. (setq Y-axis (cons (make-string width-of-label ? ) Y-axis))) (setq height (1- height))) ;; Insert base line. (setq Y-axis (cons (Y-axis-element 1 width-of-label) Y-axis)) (nreverse Y-axis)))
In this function, we start with the value of height
and repetitively
subtract one from its value. After each subtraction, we test to see whether
the value is an integral multiple of the Y-axis-label-spacing
. If it
is, we construct a numbered label using the Y-axis-element
function;
if not, we construct a blank label using the make-string
function.
The base line consists of the number one followed by a tic mark.