2次元 線グラフ表示サポート

lmark | scale, line | axis (使用例) | symbol, number

LMARK
1.機 能
    線グラフに付加するマークの描画.
    線画描写のペンの現在位置に pmarkルーチンと同様のマークを黒で描く.

2.呼出し手順と引数
      call lmark(lmk, size)
  lmk     [int]   マーク種別を選択する.
                  この lmkコード値 の 0/1/2/3/4/5/6/7/8/9 に対応して,pmarkル
                  ーチンの第1引数 が  2/0/4/8/9/3/1/5/6/7 の形のマークを描き,
                  この値が 負 または 10以上 のときは,小さい(指定sizeの 1/3)
                  黒丸(ぬりつぶし) を描く.(下記マーク一覧を参照)
  size    [float] 描くマークの基準サイズを cm単位で指定する.

3.マーク一覧(使用例)

      

      call psopn('lmark.ps', 'a4p')
      call plots(2., 2.)
      do 20 i=0,10
        x = float(i) + 0.5
        call plot(x, 0.5, 3)
        call lmark(i, 0.7)
        if (i .eq. 10) then
          call symbol(x-0.3, 1.6, 0.3, '<0', 0., 2)
          call symbol(x-0.3, 1.2, 0.3, '>9', 0., 2)
        else
          call number(x-0.15, 1.4, 0.3, float(i), 0., -1)
        endif
   20 continue
      call wrect(0., 0., 11., 1.)
      call plote
      call pscls
      stop
      end


SCALE, LINE
1.機 能
    scaleルーチンは,配列で指定された座標データ群を 指定の座標軸長におさ
  めるのに必要な 軸目盛の初期値と増分値を求めて,配列中に格納する.
    lineルーチンは,配列に格納されている座標データを用いて,指定された
  タイプの折れ線またはマークを作画する.

2.呼出し手順と引数

      call scale(va, axlen, npt, inc)
  va      [float] 座標データが格納されている配列(その先頭要素位置)
  axlen   [float] 座標軸の長さ(cm単位,2 cm 以上でなければならない)
  npt     [int]   座標データ点の個数(2 以上の値でなければならない)
  inc     [int]   座標データ配列から各座標データ値を取り出す間隔
                  (正の値でなければならない)
              求められた軸目盛の初期値および増分値は,座標データの先頭要素を
            配列要素 va(1) としたとき,配列要素の va(npt*inc + 1) および 
            va(npt*inc + inc + 1) に格納される. 従って,そのために必要な配列
            のサイズが確保されていなければならない.

      call line(xa, ya, npt, inc, ltype, mark)
  xa, ya  [float] 座標データが格納されている配列(その先頭要素位置)
  npt     [int]   座標データ点の個数(正の値でなければならない)
  inc     [int]   座標データ配列から各座標データ値を取り出す間隔
                  (正の値でなければならない)
  ltype   [int]   タイプの指定
                  0 または正のとき,各データ点間を実線で結び,
                  0 でないとき,|ltype| 点毎にマークを作画する.
  mark    [int]   マークの種別を示す lmkコード番号
                   (マークの形状は lmarkルーチンを参照)
              このルーチンの呼び出しに先立って,scaleルーチンを call するか 
            もしくは利用者自身の設定によって,配列 xa および ya に対して座標
            軸の初期値と増分値が与えられていなければならない.この初期値およ
            び増分値の各配列での先頭要素に対する相対位置は,(npt*inc) および
            (npt*inc + inc) である.


AXIS
1.機 能
    座標軸を作画する.

2.呼出し手順と引数
      call axis(xp, yp, text, ltx, axlen, angle, firstv, deltav)
  xp, yp  [float] 座標軸の始点の座標値(cm単位)
  text    [char]  座標軸の名前の文字列
  ltx     [int]   文字列 text の文字数(0 であってはならない)
                  正の値で与えると,座標軸の反時計回りの側に座標軸の名前を作
                  画し,負の値で与えると,時計回りの側に作画する.
  axlen   [float] 座標軸の長さ(cm単位,2 cm 以上でなければならない)
  angle   [float] 座標軸の方向(度単位:+X方向から反時計回りにはかる)
  firstv  [float] 座標軸の目盛の初期値
  deltav  [float] 座標軸の1cmあたりの増分値
                  値が 0. のとき,1.0 とみなす.

3.使 用 例

      dimension p(3,12)
      do 10 i=1,10
        p(1,i) = float(i-1)
        p(2,i) = sqrt(p(1,i))
        q4 = p(1,i) - 4.
        p(3,i) = q4*q4 * 0.15
   10 continue
      call scale(p(1,1), 10., 10, 3)
      call scale(p(3,1), 10., 10, 3)
      p(2,11) = p(3,11)
      p(2,12) = p(3,12)
      call psopn('axis.ps', 'a4p')
      call plots(2., 2.)
      call axis(0., 0., 'Axis-X', -6, 10., 0., p(1,11), p(1,12))
      call axis(0., 0., 'Y=sqrt(X)', 9, 10., 90., p(3,11), p(3,12))
      call line(p(1,1), p(2,1), 10, 3, 1, 4)
      call line(p(1,1), p(3,1), 10, 3, 1, 10)
      call plote
      call pscls
      stop
      end

      


SYMBOL, NUMBER
1.機 能
    文字列または数値をCourierフォントで描く.

2.呼出し手順と引数
      call symbol(xp, yp, high, text, ang, nc)
      call number(xp, yp, high, fv, ang, ndec)
  xp, yp  [float] 文字を描き始める位置の座標値(cm単位)
                  xp=yp=999. のとき ペンの現在位置が始点となり,xp,yp のいず
                  れか一方のみが 999. に等しい場合は,その座標軸に関してのみペ
                  ンの現在位置の座標を始点の座標値とする.
  high    [float] 文字の高さ(cm単位)
  ang     [float] 文字を描く方向(度単位:+X方向から反時計回りにはかる)
  text    [char]  作画する文字列(または [nc <= 0 のとき] lmkコード の1バイト)
  nc      [int]   描く文字列(text)の文字数 (>0)
                  正のとき text の先頭からその文字数分の文字列を描き,0 または
                  負のとき text の先頭文字を lmkコード(lmarkルーチン参照)と
                  みなし,指定の点にそのマークを描く. なお,-2 以下のときは,
                  ペンの現在位置から指定の点まで線を描く.
  fv      [float] 作画する数値
                  整数部は,負の場合の符号を含めて 21桁以下でなければならない.
  ndec    [int]   小数点以下の作画する桁数(-9〜+9)
                  負のとき 小数点を除いた整数部分のみを作画するが,-2 以下のと
                  き整数部の下位 (|ndec| - 1) 桁を作画しない.
                  +9 以上のときは +9,-9 以下のときは -9 とみなされる.