ntuple and hist





ヒストグラムの書き方



1次元のヒストグラム

まずntupleとhistの説明をします。これらはヒストグラムをつくりたい時に使いま す。とりあえず
1.376
0.830
...
(1000行)
という様なデータを用意して下さい。では、ヒストグラムを描いてみましょう。

PAW> ntuple/create 100 'title' 1 ' ' 1000 name

コマンドはこんな意味です。
ntuple/createntupleをつくります。
100つくったntupleのIDナンバー(どんな数字でもいい)
'title'ntuple の名前
1データの種類の数
' '気にしないでつけておきましょう。
1000データの数
nameデータの名前(ヒストグラムにでます)

PAW> ntuple/read 100 filename.dat

さっき作ったntuple(IDナンバーは100)にデータ(filename.dat)を 読み込ませます。

PAW> ntuple/plot 100.name

ヒストグラムが書けます。

次にhistを使って、領域やbin幅などを指定のできるヒストグラムを書きます。 今までに書いたヒストグラムでデータの範囲を見ておいてください。

PAW> hist/create/1dhist 110 'histname' 20 -1.5 1.5

hist/create/1dhist1次元のhistを作ります。
110つくったhistのIDナンバー
(さっきのntupleのIDナンバーの100とは違う数字にします)
'histname'データの名前(ヒストグラムの下に表示されます)
20 -1.5 1.520はヒストグラムの階級の数
-1.5 1.5 は、ヒストグラムを書きたい範囲

PAW> ntuple/project 110 100

100 はntupleのIDナンバーで、110 はhistのIDナンバーです。histにさっきの ntupleのデータを入れると思ってください。

PAW> hist/plot 110

とすると、ヒストグラムがかけます。

また、いろいろなヒストグラムがかけて

PAW> hist/plot 110 e

eをつけるとエラーバーが書けます。

PAW> hist/plot 110 b

とすると、細めのヒストグラム(棒状)が書けます。

PAW> hist/plot 110 l

ヒストグラムが折れ線グラフになります。

PAW> hist/plot 110 c

なめらかな線のグラフになります。

top
目次


ヒストグラムのfitting


Histogram ID が 110 というのがあるとして、

PAW> hist/fit 110 g

とすると、Gaussian で fitting します。最後のgというのが Gaussian で fitting するというオプションです。

PAW> hist/fit 110 e

PAW> hist/fit 110 p

PAW> hist/fit 110 p2

eはexponential fittingで、pとかp2というのはそれぞれ1次・2次のべき関数で、pn (nは任意)とするとn次になります。

fittingした時に、統計の情報を図の上に出力したい時には

PAW> option fit

PAW> hist/fit 110 g

とすると、右上χ2、Constant、Mean、Sigmaが表示されます。 さらにそれぞれの誤差もつけたい場合には

PAW> set fit 111

PAW> hist/fit 110 g

と打っておきます。

top
目次


任意の関数でのfitting

ここでは、任意の関数の fitting をやってみます。例として、

f(x) = p0 * cos( p1 * x ) + p2

という関数でやってみます。まず、以下のような FORTRAN のファイル cosfit.f を作ります。

      function cosfit(x)
      common /pawpar/ par(3)
      cosfit=par(1)*cos(par(2)*x)+par(3)
      end

これは FPRTRAN ですので行の頭を6文字くらいあける必要があります。 で、あらかじめ ID = 100 という hist を作っておくとして、

PAW> vector/create par(3) R 10 1 10

ここで、vector/create については次の vector の章を見て下さい。 この par に fitting の結果がはいります。次の、R 10 1 10 は 初期値です。それで、

PAW> hist/fit 100 cosfit.f ! 3 par

で、fitting します。100 はヒストグラムの ID、cosfit.f はファイル名、 ! はオプションは適当にというやつで、3 はパラメータの数、 par は上で定義した vector です。 初期値を

PAW> vector/create par(3) R 10 10 10

としてやると

PAW> hist/fit 100 cosfit.f ! 3 par

変な初期値をほり込むとむちゃくちゃになります。

top
目次


2次元のヒストグラム

それでは、2つのデータを使って、2次元のヒストグラムを書きます。 データは、次のようなものです。
0.234 1.328
1.334 0.745
...
(1000行2列)
2次元の場合でもntupleを使うのは同じで

PAW> ntuple/create 120 'title' 2 ' ' 1000 first second

ここで、1次元の場合と違うのは 2 first second というところだけで、 2 はデータの数、 first second は1番目と2番目のデータの名前に なっています。2次元のhistは

PAW> 2d 130 'title' 20 -1.5 1.5 20 -1.5 1.5

と、します。この場合、1次元のときと違うのは 20 -1.5 1.5 20 -1.5 1.5と するところで、はじめの 20 -1.5 1.5はx軸の設定で、あとのほうは y軸の設定です。

PAW> ntuple/read 120 filename.dat

PAW> ntuple/project 130 120.second%first

こうするとhistの時と同様に、ntupleのデータが2dに入ります。但しfirstはx軸に、 secondはy軸に入ります。

PAW> hist/plot 130

これで2次元のヒストグラムが書けました。

PAW> hist/plot 130 box

PAW> hist/plot 130 contour

PAW> hist/plot 130 surf

PAW> hist/plot 130 lego

などと打つと、いろいろな図が書けます。

top
目次


lego plot

いろいろな lego plot の書き方です。
まずは、影のつく lego plot

PAW> hist/plot 140 lego1

色付の lego plot

PAW> hist/plot 140 lego2

top
目次


surface plot

いろいろな surface plot の書き方です。

PAW> hist/plot 140 surf1

PAW> hist/plot 140 surf2

PAW> hist/plot 140 surf3

PAW> hist/plot 140 surf4

最後についているオプションはそれぞれ、
なしcel line のみ
1色付
2色付(cel line なし)
3contour map がつきます
4shading になります。
もっと多くの色を使いたいときは こちらです。

さっきの lego plot もそうですが、視点の切替えがしたい場合は

PAW> angle 60 30
PAW> hist/plot 140 surf

これで、theta 方向 60 degree、phi 方向 30 degree からみたように なります。初期値は theta = 30、 phi = 30 です。

top
目次


contour plot (等高線図)

いろいろな contour plot (等高線図) の書き方です。

等高線を色にします。

PAW> hist/plot 140 cont0

普通の contour plot。等高線のタイプが変わります。

PAW> hist/plot 140 cont1

普通の contour plot その2。等高線が全て solid です。

PAW> hist/plot 140 cont2

色でそれぞれの階層をぬりつぶします。

PAW> hist/plot 140 cont3

等高線の数は、10 ですが(tutolial には 15 ってかいてますけど)、 その階層の数を任意の値にして、しかも好きなところに等高線を引きたい場合には、 例えば次のような vector を作って

PAW> vector/create vec(5) R 50 100 150 200 250
PAW> hist/2d/contour 140 5 0 vec

5 は、等高線の階層の数、0 は等高線のタイプの指定、vec は作った vector の名前になります。階層の数の最大は 50 です。

top
目次


ntuple を使った scatter plot



3次元scatter plot

3次元のplotの書き方はdataがx、y、zの順に並んでるとするとntupleの フォーマットで

PAW> ntuple/create 100 'title' 3 ' ' 400 x y z

PAW> ntuple/read 100 filename.dat

PAW> igset mtyp 29

PAW> ntuple/plot 100.z%y%x

で、3次元座標上で点をうちます。

top
目次