带标签示例图表

由于插入会填充到点的右侧和下方的缓冲区,新的图表打印函数应该首先打印Y或垂直轴,然后是图表的主体,最后是X或水平轴。这个顺序为我们规定了函数的内容:

  1. 设置代码。
  2. 打印Y轴。
  3. 打印图表主体。
  4. 打印X轴。

这是一个完成的图表应该看起来的示例:

    10 -
                  *
                  *  *
                  *  **
                  *  ***
     5 -      *   *******
            * *** *******
            *************
          ***************
     1 - ****************
         |   |    |    |
         1   5   10   15

在这个图表中,垂直轴和水平轴都用数字标记。然而,在一些图表中,水平轴表示时间,最好用月份标记,就像这样:

     5 -      *
            * ** *
            *******
          ********** **
     1 - **************
         |    ^      |
         一月  六月   一月

事实上,经过一点思考,我们可以轻松想出各种垂直和水平标记方案。我们的任务可能变得复杂。但是复杂性会导致混淆。与其允许这种情况发生,不如为我们的第一次尝试选择一个简单的标记方案,以后再进行修改或替换。

这些考虑建议了print-graph函数的以下大纲:

(defun print-graph (numbers-list)
  "文档…"
  (let ((height  …
        …))
    (print-Y-axis height … )
    (graph-body-print numbers-list)
    (print-X-axis … )))

我们可以逐步处理print-graph函数定义的每个部分。