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 Y を Y X と書き直すだけですみます。
2.10.1.3. 基本スタイル3¶
次に、上のデータはそのままに、2 番目と 3 番目の Y コラムを描画したくないときは、 2 番目 3 番目の Y を N もしくは NY と書き換えるだけですみます。 すなわち、N か NY に対応するコラムのデータは 読み飛ばします。 しかしながら、部分的に 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: 行でコラムを指定する基本パラメーターをまとめると
パラメーター |
説明 |
備考 |
|---|---|---|
|
Xコラム |
必ず一つだけ必要 |
|
Yコラム |
最大 30 個、数字番号付加可 |
|
X座標エラーコラム |
数字番号付加可 |
|
Y座標エラーコラム |
数字番号付加可 |
|
読み飛ばしコラム |
|
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
[ * \(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. 凡例表示パラメーター¶
パラメーター |
説明 |
|---|---|
|
凡例を表示します。(default) |
|
凡例を表示しません。 |
|
凡例左端の位置をX座標の値で \(x\) とします。 |
|
凡例上端の位置をY座標の値で \(y\) とします。 |
|
凡例の大きさをデフォルト値を1として \(s\) とします。 |
|
凡例の文字の色を \(c\) [1] とします。(D=e) |
|
凡例全体を \(boxname\) [2] の箱で囲みます。 |
|
凡例箱の背景の色を \(cb\) とします。(D=w) |
|
凡例箱の枠の色を \(cl\) とします。(D=e) |
|
凡例箱の影の色を \(cs\) とします。(D=e) |
2.10.4. ラインパラメーター¶
Y パートのファクターや凡例の後のコンマで区切った部分は、 ラインの種類や、シンボルの形、補間の有無、ヒストグラム表示などを 指定するパラメーターを記述します。
例えば 入門例題2 で H: X Y(Histogram),DH0 の場合、DH0 が これにあたります。この場合、Dashed Line で Histogram 表示、 データポイントのシンボルは無し、を意味します。
2.10.4.1. 線種¶
ラインの種類には次の 9 種類があり、アルファベットの 記号で指定します。
|
最後の Interior Shaded は、ラインで囲まれた領域を塗りつぶします。
塗りつぶすグレースケールや色は、別に指定できます。
I を指定した時は、他の線やシンボルと同様に軸フレームの中に クリッピングされますが、II とすれば、クリッピングされません。
2.10.4.2. 線種パターン長変更¶
線種のパターンの単位長さを変えたいときは、 パラメーターセクション P: で次のパラメーターを使います。
パラメーター |
説明 |
|---|---|
|
パターンの長さをデフォルト値を1として \(r\) とします。 |
により変更します。\(r\) は、デフォルトを1とした単位で指定します。
2.10.4.3. 線の太さ¶
線の太さは次のように、デフォルトを基準に Z で細く、 T で太くすることができます。
|
2.10.4.4. 補間 Spline¶
データポイント間をラインで結ぶとき、デフォルトでは直線で結びますが、 ラインパラメーターに S を加えることにより、なめらかな曲線でデータポイントを 結びます。入門例題2に補間の例題があります。
S[ \(n\) ]
のように、[ ] を使い点数を \(n\) で指定します。
2.10.4.5. シンボル¶
データポイントに表示するシンボルは数字で指定して、 以下のように 16 種類あります。
|
2.10.4.6. シンボルのオプション¶
シンボル番号 3 \(\sim\) 14 の奇数番のシンボルは、中抜きのシンボルです。 しかし、これらは先に書いたシンボルやライン、 また、同時に書いたラインに対しては、不透明です (入門例題2のSplineのグラフをご覧下さい)。 内側を白色にしています。
中抜きを白色ではなく、透明にしたい場合は、 それらシンボル番号に20を加えたシンボル番号をお使い下さい。 中抜きは、全て透明となります。
また、これらのシンボル番号 3 \(\sim\) 14 の奇数番のシンボルの 中抜き部分は、デフォルトで白色です。 シンボルの色を指定すると、シンボルラインはその色になりますが、
中抜き部分は白色のままです。中抜き部分の色を変える場合は、 これらのシンボル番号の後に続けて、5[R] というように [ ] を用い色を指定できます。
シンボルの線の太さは、大きさとともに太くなりますが、 パラメーターで指定することもできます。 シンボルを描く線の太さを変えるパラメーター は、パラメーターセクション P: に次の様に記述します。 全てのシンボルに作用します。
パラメーター |
説明 |
|---|---|
|
シンボルを描く線の太さをデフォルト値を1として \(r\) とします。 |
2.10.4.7. シンボルの大きさ¶
シンボルの大きさは次のように、 デフォルトを基準に X で小さく、A で大きくすることができます。
|
2.10.4.8. グレースケール¶
線種、シンボル及び領域のグレースケールは、以下のように記号によって指定します。
white から black まで、6 段階です。 後述するC[\(f\)]を使えば、数値もしくは名前による連続的な 指定もできます。 プリンターによってグレーの度合いが違いますので、注意が必要です。
|
2.10.4.9. カラー¶
線種、シンボル及び領域の色は、以下のように記号によって指定します。
red から blue まで、5 色、中間色は文字を繰り返して指定します。 C[\(f\)]を使えば、数値もしくは名前による連続的な
指定もできます。 記号による指定は色相数値のみの指定で、彩度、明度は1です。 HSB数値による指定では、色相のほかに彩度と明度も指定できます。 プリンターによって色合いが違いますので、注意が必要です。
|
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(明度)\) のカラーマップを、 また、その次の頁に名前による色指定の見本を示します。 他のパラメーターで色を指定するときには、記号、名前、数値のいずれの 指定も可能です。
図 2.3 カラーマップ¶
図 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
図 2.5 ヒストグラム例題1¶
データポイントとヒストグラムの関係が上の図に示されています。 両者の位置関係を変えるには、上のリストの1行目で H を HH もしくは HHH に変えます。
このように、データポイントとヒストグラムの位置関係を選択することが できます。
2.10.5. 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 座標エラーバー¶
ID 番号による指定はできない。
- ひとつの H: セクションに複数の Y コラムがある場合、全てのポイントに同じ X 座標のエラーバーがついてしまう。
従って、複数の X 座標のエラーバーを持ったラインを描く場合は、各々異なる H: セクションに 書かなければなりません。
2.10.7. コラム関数¶
ひとつのコラムの値のべき乗、定数倍、定数の加減は、ファクターを 用いて記述できますが、複雑な関数、もしくは、ふたつ以上のコラムの 値を用いた関数は、ここで述べるコラム関数を用いて記述します。 書式は、
\(\langle\) コラムパラメーター \(\rangle\langle\) ID番号 \(\rangle\)=[ 数式 ]
ここで、コラムパラメーターとは、表2.8 の X, 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
図 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
図 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
図 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. 関数フィット係数表示パラメーター¶
パラメーター |
説明 |
|---|---|
|
関数フィット係数を表示します。 |
|
関数フィット係数を表示しません。 (default) |
|
係数表示左端の位置をX座標の値で \(x\) とします。 |
|
係数表示上端の位置をY座標の値で \(y\) とします。 |
|
係数表示の大きさをデフォルト値を1として \(s\) とします。 |
|
係数表示の文字の色を \(c\) [3] とします。(D=e) |
|
係数表示全体を \(boxname\) [4] の箱で囲みます。 |
|
係数表示箱の背景の色を \(cb\) とします。(D=w) |
|
係数表示箱の枠の色を \(cl\) とします。(D=e) |
|
係数表示箱の影の色を \(cs\) とします。(D=e) |
色の定義の仕方は、ラインパラメーターのところで解説します。
\(boxname\) の説明は、BOX: セクションのところで解説します。
\(\langle\) コラムパラメーター1 \(\rangle\langle\) ID番号 \(\rangle\)
=F{\(\langle\) コラムパラメーター2 \(\rangle\)}[関数式(An)]{ }, [ ]の中以外空白 は入れてはいけない。コラムパラメーター2は、N をつけない。(NY2 \(\to\) Y2)
数式の中のコラムパラメーターは、N をつけない。(NY2 \(\to\) Y2)