グラフのプロット TGraph()

TGraphは点の間隔が一定あっても、そうでなくてもプロットできる。
まず、座標の配列を定義しておいて、それからグラフを生成する。
座標はdouble型、float型のいずれかであればよい。


from ROOT import TCanvas,TGraph
from math import sin
from array import array

n = 10
x, y = array( 'd' ), array( 'd' )
#x,y = [],[]
for i in range(0,n):
x.append(float(i))
y.append(float(sin(i)))
print x, y
print len (x),len(y)
gr1 = TGraph(n,x,y)
gr1.Draw('ACP')

Drawには複数のオプションがある。
通常使うのは'APC'か'APL'であろう。
L:全ての点を単純に折れ線で結ぶ
A:グラフを座標軸で囲む
C:なめらかな曲線を描く
P:各点にグラフの現在のマーカーをつける

描画してみると↓のようになる。sinカーブはあまり面白くないな。


さて、コメントアウトしているlistに関して
リファレンスには「座標はdouble型、float型のいずれかであればよい。」
と書いてあるのでlistで代入してみた。しかしTGraphに型が合わないとエラーを返される。
printでarray、listそれぞれの中身を確認すると、1文字目の型識別文字以外全て同じ。
原因不明だが、TGraphに値を読み込ませるときはarrayを使用しなければならないようである。