2.10. H:   1次元グラフセクション

2.10.1. 基本スタイル

2.10.1.1. 基本スタイル1

H: で始まる行は、その下にあるデータのコラムの定義が基本です。 入門例題1 のデータの一部を再録すると

List 2.3 ● 基本スタイル1

1:  H: X     Y
2:     0.5   10
3:     3     40

この場合、H: 行の示すところは、数値コラムが 2 つあり、最初が X コラム、次が Y コラム ということです。 データの行数は自動判定します。即ち、空白行 が来るか、他のセクションの 文字列が来るまでとします。 データの行数はメモリーの許す限り可能です。メモリーが足りない場合は、 angel00.inc の中の mdas を大きくして下さい。

2.10.1.2. 基本スタイル2

X コラムの数はひとつです。 Y コラムの数はひとつのセクションに最大 30 個です。 同じ X の値に対していくつかのグラフを同時に描くときに便利です。次のように書きます。

List 2.4 ● 基本スタイル2

1:  H:  X     Y1     Y2     Y3      Y4
2:      0.5   10      1     .4    10.5
3:      3     50      2     .5    13.3
4:      5     30      3     .6    12.3

この場合、同じ X の値に対して 4 本の線が引かれます。 Y1  Y2  Y3  Y4 の Y に続く数字の番号は、 後述するエラーコラムや、関数の利用との関係で 必要になることがありますが、通常は省いてもかまいません。 つまり、Y  Y  Y  Y とスペースを間に入れるだけで問題ありません。 また順番は自由です。 X コラムの位置は、先頭のコラムという規定はありません。従って、X, Y を反転する場合など、 単に H: 行の X  YY  X と書き直すだけですみます。

2.10.1.3. 基本スタイル3

次に、上のデータはそのままに、2 番目と 3 番目の Y コラムを描画したくないときは、 2 番目 3 番目の YN もしくは NY と書き換えるだけですみます。 すなわち、NNY に対応するコラムのデータは 読み飛ばします。 しかしながら、部分的に X コラムに対応する Y コラムの位置にデータを書かない ということはエラーになります。例えば

List 2.5 ● 基本スタイル3

1:  H:   X    Y1    NY2     N3     Y4
2:      0.5   10      1     .4    10.5
3:      3     50      2           13.3
4:      5     30      3     .6    12.3

は、エラーになります。すべての X の値に対応した Y コラムの値がないときは、 別の H: セクションに書かなければなりません。

以上が H: 行でのデータの数値コラムを指定する基本スタイルです。 ここまでで、H: 行でコラムを指定する基本パラメーターをまとめると

表 2.8 コラムパラメーター

パラメーター

説明

備考

X

Xコラム

必ず一つだけ必要

Y

Yコラム

最大 30 個、数字番号付加可

DX

X座標エラーコラム

数字番号付加可

D

Y座標エラーコラム

数字番号付加可

N, NX, NY, ND, NDX

読み飛ばしコラム

NX, NDX 以外数字番号付加可

2.10.2. ファクター

X, Y, D, DX コラムの数値データについて、べき乗、定数倍、定数の加減、ができます。 例えば、

List 2.6 ● ファクター例題

1:  H:   X   Y*1.0E+03-500.0
2:     0.5   10
3:     3     40
は、Y コラムの値に 1000 を掛けて 500 を引いた値をプロットすることになります。 X コラムについても同様です。 書式は

[ * \(r_1\) ] [ { \(|\) / } \(r_2\) ] [ { + \(|\) - } \(r_3\) ]


です。この表記で、[   ] は省略可能の意味、{ \(A\) \(|\) \(B\) } は、 \(A\)\(B\) のいずれか一方を選択するという意味です。 ここで、\(r_1, r_2, r_3\) は、正の実数。 もし負の数を用いる時は、 (\(-r_1\)), (\(-r_2\)), (\(-r_3\)) のように (  ) を 用いてください。 また、ユーザー定義定数、数式は \(r_1, r_2, r_3\) として 使えません。 従って、 この書式では、複雑な計算はできません。この書式で計算できない コラム数値の変換は、後述する関数の使い方をご覧下さい。 この書式で注意すべき点は、

  • べき乗、乗除、加減が入る場合は、べき乗、乗除、加減の順。

  • 最初と途中に空白を入れてはいけない。

  • 負の数を用いる時は、(   ) を用いる。


ということです。

2.10.3. 凡例

入門例題2で見たように、ひとつのグラフに複数のラインを描くときに 便利な凡例を簡単に入れることができます。 書式は、例えば

List 2.7 ● 凡例例題

1:  H:  X   Y(Histogram),DH0
2:      0.0    0
3:      0.5   10
4:      1.5   20

のように、 Y もしくは Y3 のような番号の後、コンマ以前に (   ) の中に 文字列を挿入すると、その文字列がグラフの線種、もしくはシンボルとともに 自動的に座標軸枠の右側中央に順に表示されます。 凡例の表示順番は、入力ファイルで出現した順番です。 表示位置は、パラメーターによって自由に移動できます。 書式の注意点は

  • (    ) の中に括弧を書くときは  \(   \) とする。

  • (    ) の前後に空白を入れない。


ことです。勿論文字列の中の空白はかまいません。 またファクターとの前後関係は ありません。

凡例の表示位置や大きさを変更したり、体裁を整えるためのパラメーターを 以下にまとめます。これらは、パラメーターセクション P: に記述します。

2.10.3.1. 凡例表示パラメーター

表 2.9 凡例表示パラメーター

パラメーター

説明

LEGN

凡例を表示します。(default)

NOLG

凡例を表示しません。

LEGX( \(x\) )

凡例左端の位置をX座標の値で \(x\) とします。

LEGY( \(y\) )

凡例上端の位置をY座標の値で \(y\) とします。

LEGS( \(s\) )

凡例の大きさをデフォルト値を1として \(s\) とします。

CLLG( \(c\) )

凡例の文字の色を \(c\) [1] とします。(D=e)

LBOX( \(boxname\) )

凡例全体を \(boxname\) [2] の箱で囲みます。

LBCB( \(cb\) )

凡例箱の背景の色を \(cb\) とします。(D=w)

LBCL( \(cl\) )

凡例箱の枠の色を \(cl\) とします。(D=e)

LBCS( \(cs\) )

凡例箱の影の色を \(cs\) とします。(D=e)

2.10.4. ラインパラメーター

Y パートのファクターや凡例の後のコンマで区切った部分は、 ラインの種類や、シンボルの形、補間の有無、ヒストグラム表示などを 指定するパラメーターを記述します。

例えば 入門例題2 で H:  X   Y(Histogram),DH0 の場合、DH0 が これにあたります。この場合、Dashed Line で Histogram 表示、 データポイントのシンボルは無し、を意味します。

2.10.4.1. 線種

ラインの種類には次の 9 種類があり、アルファベットの 記号で指定します。

表 2.10 ライン線種
../_images/tab201.png

最後の Interior Shaded は、ラインで囲まれた領域を塗りつぶします。 塗りつぶすグレースケールや色は、別に指定できます。 I を指定した時は、他の線やシンボルと同様に軸フレームの中に クリッピングされますが、II とすれば、クリッピングされません。

2.10.4.2. 線種パターン長変更

線種のパターンの単位長さを変えたいときは、 パラメーターセクション P: で次のパラメーターを使います。

表 2.11 線種パターン長変更パラメーター

パラメーター

説明

LPTL( \(r\) )

パターンの長さをデフォルト値を1として \(r\) とします。

により変更します。\(r\) は、デフォルトを1とした単位で指定します。

2.10.4.3. 線の太さ

線の太さは次のように、デフォルトを基準に Z で細く、 T で太くすることができます。

表 2.12 線の太さ
../_images/tab202.png

2.10.4.4. 補間 Spline

データポイント間をラインで結ぶとき、デフォルトでは直線で結びますが、 ラインパラメーターに S を加えることにより、なめらかな曲線でデータポイントを 結びます。入門例題2に補間の例題があります。

デフォルトでは、データポイント間を4点で補間します。この補間点数を 変える時は、

S[ \(n\) ]


のように、[  ] を使い点数を \(n\) で指定します。

2.10.4.5. シンボル

データポイントに表示するシンボルは数字で指定して、 以下のように 16 種類あります。

表 2.13 シンボル
../_images/tab203.png

2.10.4.6. シンボルのオプション

シンボル番号 3 \(\sim\) 14 の奇数番のシンボルは、中抜きのシンボルです。 しかし、これらは先に書いたシンボルやライン、 また、同時に書いたラインに対しては、不透明です (入門例題2のSplineのグラフをご覧下さい)。 内側を白色にしています。

中抜きを白色ではなく、透明にしたい場合は、 それらシンボル番号に20を加えたシンボル番号をお使い下さい。 中抜きは、全て透明となります。

また、これらのシンボル番号 3 \(\sim\) 14 の奇数番のシンボルの 中抜き部分は、デフォルトで白色です。 シンボルの色を指定すると、シンボルラインはその色になりますが、 中抜き部分は白色のままです。中抜き部分の色を変える場合は、 これらのシンボル番号の後に続けて、5[R] というように [  ] を用い色を指定できます。

シンボルの線の太さは、大きさとともに太くなりますが、 パラメーターで指定することもできます。 シンボルを描く線の太さを変えるパラメーター は、パラメーターセクション P: に次の様に記述します。 全てのシンボルに作用します。

表 2.14 シンボルパラメーター

パラメーター

説明

SYBW( \(r\) )

シンボルを描く線の太さをデフォルト値を1として \(r\) とします。

2.10.4.7. シンボルの大きさ

シンボルの大きさは次のように、 デフォルトを基準に X で小さく、A で大きくすることができます。

表 2.15 シンボルの大きさ
../_images/tab204.png

2.10.4.8. グレースケール

線種、シンボル及び領域のグレースケールは、以下のように記号によって指定します。 white から black まで、6 段階です。 後述するC[\(f\)]を使えば、数値もしくは名前による連続的な 指定もできます。 プリンターによってグレーの度合いが違いますので、注意が必要です。

表 2.16 グレースケール
../_images/tab206.png

2.10.4.9. カラー

線種、シンボル及び領域の色は、以下のように記号によって指定します。 red から blue まで、5 色、中間色は文字を繰り返して指定します。 C[\(f\)]を使えば、数値もしくは名前による連続的な 指定もできます。 記号による指定は色相数値のみの指定で、彩度、明度は1です。 HSB数値による指定では、色相のほかに彩度と明度も指定できます。 プリンターによって色合いが違いますので、注意が必要です。

表 2.17 記号による色指定
../_images/tab205.png

2.10.4.10. カラー、グレースケールの数値及び名前による指定

カラー、グレースケールを数値で連続的に、もしくは名前で指定したい時には、

C[ \(H(色相) \, S(彩度) \, B(明度)\) | 名前 ]


のように、[  ] を使いカラーを \(H(色相) \, S(彩度) \, B(明度)\) か、 名前によって指定します。 Cは、カラーのCyanでも用いていますが、続けて[  ]が ある場合に、数値指定もしくは名前によるカラー、グレースケールの定義となります。 \(H(色相) \, S(彩度) \, B(明度)\) の意味は、 \(H\)が負の場合は、グレースケール、正の場合がカラーです。 グレースケールの時の\(S \, B\) は、意味が無く省略可能です。 カラーの場合、 \(H\) が色相、\(S\) が彩度、\(B\) が明度で、何れも0と1の間の数値で 指定します。数値の間には少なくとも1個の空白が必要です。 \(S \, B\) を省略して色相のみを指定した時は、彩度と明度は 1が仮定されます。 次の頁に\(H(色相) \, S(彩度) \, B(明度)\) のカラーマップを、 また、その次の頁に名前による色指定の見本を示します。 他のパラメーターで色を指定するときには、記号、名前、数値のいずれの 指定も可能です。

../_images/col33.png

図 2.3 カラーマップ

../_images/tab207.png

図 2.4 名前、数値による色指定

2.10.4.11. ヒストグラム

入門例題2にあるように、ラインパラメーターに H を加えると ヒストグラム表示になります。 ヒストグラムの場合、データポイントとヒストグラムの折れるところの 位置関係を選択することができます。 デフォルトでは、データポイントのY値が次のデータポイントのX値まで 継続します。即ち、データポイントはヒストグラムの左側に位置します。 例題で見てみましょう。

List 2.8 ● ヒストグラム例題

1:  H:  X   Y(例題1 H),LH6
2:      0.0    0
3:      0.5   10
4:      1.5   20
5:      2.5   35
6:      3.5   30
7:      4.5   45
8:      5.5   70
9:      6.5    0
../_images/fig202.png

図 2.5 ヒストグラム例題1

データポイントとヒストグラムの関係が上の図に示されています。 両者の位置関係を変えるには、上のリストの1行目で H を HH もしくは HHH に変えます。

../_images/fig203.png

図 2.6 ヒストグラム例題2

../_images/fig204.png

図 2.7 ヒストグラム例題3

このように、データポイントとヒストグラムの位置関係を選択することが できます。

2.10.5. Y コラム書式まとめ及び注意点

ここまでの、Y コラムの書式と注意点を以下にまとめます。
  • Y[ID番号][(凡例文字列)][ファクター],
    [線種][線の太さ][シンボル ][シンボルの大きさ][補間][ヒストグラム]
  • 凡例文字列以外に空白を入れてはいけない。


2.10.6. エラーバー

実験データのようにエラーバーがある場合、その大きさを D, DX で指定されるコラムで 記述します。 エラーコラムの数値は、エラー幅の絶対値を表します。 エラーが % もしくは、相対誤差で与えられているときは、 後に説明するコラム関数を利用して下さい。

2.10.6.1. Y 座標エラーバー

基本スタイルは、エラーバーをつける Y コラムの直後に D で指定したコラムを 準備し、そこに値を入れます。

List 2.9 ● エラー基本スタイル1

1:  H:  X     Y    D
2:      1    10    3
3:      3    50    4

この場合、(1,10) のポイントに Y 軸方向に \(\pm\)3 のエラーバーがつきます。

+ 側と - 側に異なる大きさのエラーバーをつけるには、D+  D- のように ふたつのコラムを用意して記述します。

List 2.10 ● エラー基本スタイル2

1:  H:  X     Y    D+    D-
2:      1    10    3     2
3:      3    50    4     3

この場合、(1,10) のポイントには、Y 軸 + 側に 3、 Y 軸 - 側 に 2 のエラーバーがつきます。 ひとつのエラーコラムで + - 両側のエラーバーを指定することを 明示的に記述するには、D+- を使います。これはデフォルトの D と同じ意味です。

ひとつの H: セクションにいくつかの Y コラムがあり、 各々に D によるエラーバーのコラムがある場合、 デフォルトでは Y の直後の D コラムが、 直前の Y 値のエラーバーとなります。このコラムの順番をより自由に使うには、 Y のパラメーターに ID 番号をつけます。例えば

List 2.11 ● エラー基本スタイル3

1:  H:  X    Y1    Y2      D2      D1
2:      1    10    1.1    0.3      3
3:      3    50    1.3    0.4      4

この場合、Y1 の (1,10) ポイントには \(\pm\)3 のエラーバーがつき、 Y2 の (1,1.1) ポイントには \(\pm\)0.3 のエラーバーがつきます。 ID 番号は、1 から 10 までで、順番は自由です。ただし、ID をつけた Y コラムとつけない Y コラムが混在すると、不都合が生じる場合がありますから、 混在は避けて下さい。

以上、エラーバーコラム指定の書式をまとめると
  • D[ID番号][+][-][ファクター]

  • [+][-][ファクター] を同時に 使うときは、必ず [+][-] を先にする。


2.10.6.2. X 座標エラーバー

X 座標のエラーバーのコラムは、DX で指定します。書式はY 座標の場合とほぼ同じなので、 異なるところだけまとめると
  • ID 番号による指定はできない。

  • ひとつの H: セクションに複数の Y コラムがある場合、
    全てのポイントに同じ X 座標のエラーバーがついてしまう。

従って、複数の X 座標のエラーバーを持ったラインを描く場合は、各々異なる H: セクションに 書かなければなりません。

2.10.7. コラム関数

ひとつのコラムの値のべき乗、定数倍、定数の加減は、ファクターを 用いて記述できますが、複雑な関数、もしくは、ふたつ以上のコラムの 値を用いた関数は、ここで述べるコラム関数を用いて記述します。 書式は、

\(\langle\) コラムパラメーター \(\rangle\langle\) ID番号 \(\rangle\)=[ 数式  ]


ここで、コラムパラメーターとは、表2.8X, Y, DX, D, NY, ND を指します。 また、ID番号は、Y, D, NY, ND の時必要です。 = の前後には空白は入れられません。 [   ] の中の数式では、空白は用いることができます。 数式で使える変数は、実数、ユーザー定義定数、内部定数(pi, ran)、 内部関数、Fortranの数式、それと、 後に述べる、自走変数、関数フィット係数、そして、 現在の H: セクションで用いているX, Yコラムの値、これをコラムパラメーター プラスID番号で指定して使えます。 以下に例題を見てみましょう。

List 2.12 ● コラム関数例題

1:  H:  X     Y1,D6   NY2   DY1=[Y1*Y2/100]
2:      0.0    0.0     0.0
3:      1.0    0.4    50.0
4:      2.0    1.5    30.0
5:      3.0    2.5    20.0
6:      4.0    4.1    10.0
../_images/fig205.png

図 2.8 コラム関数例題

この例題では、第1コラムがX値、第2コラムがY値、第3コラムがY値の 相対誤差が%表示で与えられています。 ANGEL では、誤差は誤差幅の絶対値で与えることになっているので、 このままでは、誤差を表示できません。そこで、 第3コラムを NY2 として、第4コラムとしてコラム関数を使います。 これを Y1 の誤差として DY1=[Y1*Y2/100] と定義しています。 結果が右図です。コラム関数の数式に使えるコラム値は、X, Yコラム値 ですから、第3コラムを ND1 とせずに NY2 としています。 コラム関数の注意点をまとめると

  • \(\langle\) コラムパラメーター \(\rangle\langle\) ID番号 \(\rangle\)=[ 数式  ]

  • [   ] の中以外空白は入れてはいけない。

  • 凡例、誤差の[+][-]を併用するときは、コラム関数が先。

  • 数式の中のコラムパラメーターは、N をつけない。(NY2 \(\to\) Y2)

2.10.8. 自走変数 V

コラム関数を用いると、コラム値の多種多様の関数変換が 可能になりますが、解析的な与えられた関数を表示するには、 Xコラムの数値を与える必要があります。 そのために、ANGEL では、自走変数 V を定義できます。 書式は、

V=[ \(r_1\), \(r_2\), \(n\) ]


ここで、[   ] の中以外空白は使えません。 \(r_1\), \(r_2\) は、最小値と最大値、\(n\) は分点の数です。 \(r_1\)\(r_2\) の間を \(n - 1\) 等分に分割し \(n\) 点の 値を順に与えます。 \(r_1\)\(r_2\) には、定数や数式が使えます。 この自走変数とコラム関数を用いれば、 任意の関数がグラフとして表示できます。 例題を見てみましょう。

List 2.13 ● 自走変数例題

1:  H:  V=[0,2*pi,100] X=[V/pi] Y=[0.8*sin(V)],L0
2:  H:  V=[0,2*pi,100] X=[1.0+0.5*cos(V)] Y=[0.5*sin(V)],D0
../_images/fig206.png

図 2.9 自走変数例題

上の例題では、自走変数Vを 0 から 2\(\pi\) まで100点用意し、 1行目では、Xを \(\pi\) を単位として 0 から 2 までの sin 関数、 2行目では、中心座標が (1.0, 0)、半径 0.5 の円を描いています。 自走変数の注意点をまとめると

  • V=[ \(r_1\), \(r_2\), \(n\) ]

  • [   ] の中以外空白は入れてはいけない。

  • \(r_1\)\(r_2\) には、定数、数式が使える。

2.10.9. 関数フィット

ANGEL では、データポイントの関数フィットができます。 これは、(x,y)のデータポイントの組を、解析的な関数系で 最小二乗法でフィットするものです。 エラーバーが付いているときは、ウエイトとして考慮します。 書式は、コラム関数の様式に似たもので、

\(\langle\) コラムパラメーター1 \(\rangle\langle\) ID番号 \(\rangle\)=F{ \(\langle\) コラムパラメーター2 \(\rangle\) }[ 関数式( An ) ]


ここで、コラムパラメーター1は、フィットした関数を格納するコラムで、 Y, NY です。また、コラムパラメーター2は、フィットする Y コラムです。 =F の前後には空白は入れられません。 {   } の中では、空白は用いることができます。 また、[   ] の中の関数式でも、空白は用いることができます。 関数式で使える変数は、実数、ユーザー定義定数、内部定数(pi, ran)、 内部関数、Fortranの数式、そして、 現在の H: セクションで用いているX, Yコラムの値、これをコラムパラメーター プラスID番号で指定して使えます。 フィットしたい関数形の係数は、関数フィット係数Aを用います。 係数名は、A1からA99まで使えます。 この関数フィット係数は、係数が求まった後は、ユーザー定義定数と 同じように他の場所でも使えます。

以下に例題を見てみましょう。

List 2.14 ● 関数フィット例題

1:  H:  X     Y1,D6    D1    NY2=F{ Y1 }[ A1 * X**2 ]
2:      0.0    0.0     0.0
3:      1.0    0.4     0.2
4:      2.0    1.5     0.45
5:      3.0    2.5     0.5
6:      4.0    4.1     0.41
7:  H: V=[0,4.5,100] X=[ V ] Y=[ A1 * X**2 ],L0TT
../_images/fig207.png

図 2.10 関数フィット例題

この例題のXコラムとY1コラムは、コラム関数の例題と同じです。 エラーコラムは、絶対誤差に直してあります。 これらのデータポイントを \(y = a_1 x^2\) の関数でフィットしています。

ANGEL を走らせると、標準出力に、A1の値の結果と、誤差の2乗 の値が出力されます。 フィットの方法は、メトロポリス法を用いていますので、 走らせるたびにフィット係数の値が多少違います。 特に、データポイントと関数形の相関が悪い場合は、 何度ANGEL を走らせても、 収束せずに係数がほぼゼロになる場合があります。

上の例題でもそうですが、フィットした関数を同じH:セクション で表示させると、データポイントと同じX値にしか値が与えられませんので、 滑らかな曲線が描けません。 そこで、フィットしているH:セクションでは、表示せず ( 例題では NY2 としています)、 次のH:セクションに、自走変数を用いて、得られた関数を コラム関数で描いています。 その時、上で求めた関数フィット係数A1を用いています。

得られた関数フィット係数は、 グラフの中に表示することが出来ます。 デフォルトの位置は、上の例題で描かれているように、 グラフの上側、X軸の左端です。 表示位置や大きさを変更したり、体裁を整えるためのパラメーターを 以下にまとめます。これらは、パラメーターセクション P: に記述します。

2.10.9.1. 関数フィット係数表示パラメーター

表 2.18 関数フィット係数表示パラメーター

パラメーター

説明

PARA

関数フィット係数を表示します。

NOPA

関数フィット係数を表示しません。 (default)

PARX( \(x\) )

係数表示左端の位置をX座標の値で \(x\) とします。

PARY( \(y\) )

係数表示上端の位置をY座標の値で \(y\) とします。

PARS( \(s\) )

係数表示の大きさをデフォルト値を1として \(s\) とします。

CLPA( \(c\) )

係数表示の文字の色を \(c\) [3] とします。(D=e)

PBOX( \(boxname\) )

係数表示全体を \(boxname\) [4] の箱で囲みます。

PBCB( \(cb\) )

係数表示箱の背景の色を \(cb\) とします。(D=w)

PBCL( \(cl\) )

係数表示箱の枠の色を \(cl\) とします。(D=e)

PBCS( \(cs\) )

係数表示箱の影の色を \(cs\) とします。(D=e)

関数フィットの注意点をまとめると
  • \(\langle\) コラムパラメーター1 \(\rangle\langle\) ID番号 \(\rangle\)=F{ \(\langle\) コラムパラメーター2 \(\rangle\) }[ 関数式( An ) ]

  • {   }, [   ] の中以外空白 は入れてはいけない。

  • コラムパラメーター2は、N をつけない。(NY2 \(\to\) Y2)

  • 数式の中のコラムパラメーターは、N をつけない。(NY2 \(\to\) Y2)