2009年7月2日木曜日

How to use pyROOT 応用編 その1

上下に2つのグラフを表示したいなー。

そんなときはこれを使うべし。

cv.Divide( 1, 2 )



#/bin/usr/env python

import sys, math
import ROOT

if __name__=='__main__':

# set graph1 style
graph1 = ROOT.TGraph()
graph1.SetLineWidth(2)
graph1.SetLineColor(4)
graph1.SetLineStyle(1)

# set graph2 style
graph2 = ROOT.TGraph()
graph2.SetLineWidth(2)
graph2.SetLineColor(3)
graph2.SetLineStyle(1)

# set title
graph1.SetTitle("Graph Test 2 top")
graph2.SetTitle("Graph Test 2 bottom")

# set data point
for x in range(10) :
np = graph1.GetN()
graph1.SetPoint(np, x, x**2)
graph2.SetPoint(np, x, x)

# open canvas
cv = ROOT.TCanvas("cv", "Graph Test", 800, 800)

# divide canvas to two
cv.Divide(1,2)

# top plot
pad = cv.cd(1)
pad.SetGridx(1)
pad.SetGridy(1)

# plot to top pannel
graph1.Draw("APC")

# set X axise of graph1
axisY = graph1.GetYaxis()
axisY.SetTitle("x**2")


# bottom plot
pad = cv.cd(2)
pad.SetGridx(1)
pad.SetGridy(1)

# plot to bottom pannel
graph2.Draw("APC")

# set Y axise of graph1
axisY = graph2.GetYaxis()
axisY.SetTitle("x")


# set X axis
axisX = graph2.GetXaxis()
axisX.SetTitle("x")


# export
cv.Print("graphtest2.png")


0 件のコメント:

コメントを投稿