GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/eintr/Labeled-Example.html ・ emacs-doc.conao3.com

ラベル付き例グラフ

挿入処理では点の右側および下側のバッファが埋められるため、新しいグラフ描画関数では、まずY軸(垂直軸)を、次にグラフ本体を、そして最後にX軸(水平軸)を描画するようにすべきです。この順序により、関数の内容が明確になります:

  1. コードをセットアップする。
  2. Y軸を印刷。
  3. グラフの本体を印刷する。
  4. X軸を印刷。

完成したグラフのイメージ例を以下に示します。

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

このグラフでは、縦軸と横軸の両方に数値が振られています。しかし、グラフによっては横軸が時間となっており、次のように月単位で表記した方が適切です:

     5 -      *
            * ** *
            *******
          ********** **
     1 - **************
         |    ^      |
         Jan  June   Jan

実際、少し考えれば、縦方向や横方向のさまざまなラベル付け方式を容易に考案できる。作業が複雑になる可能性もある。しかし、複雑さは混乱を招く。それを許容するよりも、まずはシンプルなラベル付け方式を選択し、後で修正したり置き換えたりする方が得策である。

これらの検討を踏まえ、print-graph 関数の構成案を以下のように提示します。

(defun print-graph (numbers-list)
  "documentation..."
  (let ((height  ...
        ...))
    (print-Y-axis height ... )
    (graph-body-print numbers-list)
    (print-X-axis ... )))

print-graph関数定義の各部分について、順に見ていきましょう。