Info Node: (emacs-lisp-intro.info)print-Y-axis Penultimate
(emacs-lisp-intro.info)print-Y-axis Penultimate
The Not Quite Final Version of `print-Y-axis'
---------------------------------------------
The list constructed by the `Y-axis-column' function is passed to
the `print-Y-axis' function, which inserts the list as a column.
(defun print-Y-axis (height full-Y-label-width)
"Insert Y axis using HEIGHT and FULL-Y-LABEL-WIDTH.
Height must be the maximum height of the graph.
Full width is the width of the highest label element."
;; Value of height and full-Y-label-width
;; are passed by `print-graph'.
(let ((start (point)))
(insert-rectangle
(Y-axis-column height full-Y-label-width))
;; Place point ready for inserting graph.
(goto-char start)
;; Move point forward by value of full-Y-label-width
(forward-char full-Y-label-width)))
The `print-Y-axis' uses the `insert-rectangle' function to insert
the Y axis labels created by the `Y-axis-column' function. In
addition, it places point at the correct position for printing the body
of the graph.
You can test `print-Y-axis':
1. Install
Y-axis-label-spacing
Y-axis-tic
Y-axis-element
Y-axis-column
print-Y-axis
2. Copy the following expression:
(print-Y-axis 12 5)
3. Switch to the `*scratch*' buffer and place the cursor where you
want the axis labels to start.
4. Type `M-:' (`eval-expression').
5. Yank the `graph-body-print' expression into the minibuffer with
`C-y' (`yank)'.
6. Press <RET> to evaluate the expression.
Emacs will print labels vertically, the top one being `10 - '. (The
`print-graph' function will pass the value of `height-of-top-line',
which in this case would end up as 15.)