Hi Jeff, Add the statement c->Update(); after your Draw calls, eg: //second plot c->cd(2); g2->Draw("AP"); c->Update(); g2->SetMinimum(0); //third plot c->cd(3); g3->Draw("AP"); c->Update(); g3->SetMinimum(0); This is not necessary anymore if you use the development version in CVS. Rene Brun On Fri, 6 Dec 2002, Jeff Hartnell wrote: > Hi Rene, > I've tracked down the problem. Doing what you suggest works BUT if you > then set the title on the axis it somehow resets the scale!!! > > g->Draw("AP"); > g->SetMinimum(0); > > Works just fine but > > g->Draw("AP"); > g->SetMinimum(0); > > g2->GetXaxis()->SetTitle("x value"); > > doesn't work and the scale gets reset. > > See my macro below demonstrating the problem. > > Cheers, > Jeff. > > Int_t height=2000; > Int_t numPoints=10; > > TGraph* g=new TGraph(numPoints); > TGraph* g2=new TGraph(numPoints); > TGraph* g3=new TGraph(numPoints); > TGraph* g4=new TGraph(numPoints); > > for (Int_t i=0;i<numPoints;i++){ > height+=100; > g->SetPoint(i,i,height); > g2->SetPoint(i,i,height); > g3->SetPoint(i,i,height); > g4->SetPoint(i,i,height); > } > > TCanvas *c=new TCanvas("c","c",0,0,1200,800); > c->SetFillColor(0); > c->Divide(2,2); > > //first plot > c->cd(1); > g->Draw("AP"); > g->SetMinimum(0); > g->SetTitle("Test plot - I work"); > g->SetMarkerStyle(3); > g->SetMarkerColor(2); > g->SetMarkerSize(0.2); > > //second plot > c->cd(2); > g2->Draw("AP"); > g2->SetMinimum(0); > g2->SetTitle("Test plot - I don't work (x-axis matters)"); > g2->SetMarkerStyle(3); > g2->SetMarkerColor(2); > g2->SetMarkerSize(0.2); > > g2->GetXaxis()->SetTitle("x value"); > //g2->GetXaxis()->CenterTitle(); > > //third plot > c->cd(3); > g3->Draw("AP"); > g3->SetMinimum(0); > g3->SetTitle("Test plot - I don't work (y-axis matters)"); > g3->SetMarkerStyle(3); > g3->SetMarkerColor(2); > g3->SetMarkerSize(0.2); > > g3->GetXaxis()->SetTitle("x value"); > g3->GetXaxis()->CenterTitle(); > g3->GetYaxis()->SetTitle("height"); > g3->GetYaxis()->CenterTitle(); > > //fourth plot > c->cd(4); > g4->Draw("AP"); > g4->SetMinimum(0); > g4->SetTitle("Test plot - I work (SetMin last)"); > g4->SetMarkerStyle(3); > g4->SetMarkerColor(2); > g4->SetMarkerSize(0.2); > > g4->GetXaxis()->SetTitle("x value"); > g4->GetXaxis()->CenterTitle(); > g4->GetYaxis()->SetTitle("height"); > g4->GetYaxis()->CenterTitle(); > //call again right at the end to sort it out!!!! > g4->SetMinimum(0); > > > > ******************************************** > Jeffrey Hartnell, Oxford/RAL DPhil student. > > Email: jeffrey.hartnell@physics.ox.ac.uk > Phone numbers, addresses etc on website: > http://www-pnp.physics.ox.ac.uk/~hartnell/ > ******************************************** > > ----- Original Message ----- > From: "Rene Brun" <brun@pcbrun.cern.ch> > To: "Jeff Hartnell" <jeffrey.hartnell@physics.ox.ac.uk> > Cc: <roottalk@cern.ch> > Sent: Friday, December 06, 2002 2:44 PM > Subject: Re: [ROOT] TGraph & SetMinimum > > > > Hi Jeff, > > > > What you do should work > > g->Draw("ap"); > > g->SetMinimum(0); > > > > if not, please send me a short but running script showing the problem. > > > > Rene Brun > > > > On Fri, 6 Dec 2002, Jeff Hartnell wrote: > > > > > Hi, > > > It seems to be impossible to override the automatic axis scaling in > > > TGraph when you draw it with the "a" option. > > > > > > I found this in the digest: > > > > > > From: Rene Brun (Rene.Brun@cern.ch) > > > Date: Wed Mar 20 2002 - 10:33:17 MET > > > > > > a.. Next message: Rene Brun: "Re: [ROOT] TGaxis" > > > b.. Previous message: Rene Brun: "Re: [ROOT] TGeant3, TGeant4 from > > > AliSoft" > > > c.. In reply to: Steffen Grohmann: "[ROOT] SetRangeUser Problem on > > > Y-axis" > > > d.. Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] > > > > > > > ---------------------------------------------------------------------- > -- > > > -------- > > > > > > > > > Hi Steffen, > > > > > > When you use the option "a" in TAxis::Draw, the axis limits are > > > automatically recomputed from the range of the actual Y values. > > > You can force a max/min of the y axis via > TAxis::SetMaximum/SetMinimum. > > > An alternative solution is to use TPad::DrawFrame. > > > > > > Rene Brun > > > > > > but TAxis doesn't have SetMaximum or minimum does it? > > > > > > I do this: > > > > > > gAdcPhNear[l]->Draw("AP"); > > > gAdcPhNear[l]->SetMinimum(0); > > > > > > but it still gets drawn with the minimum above zero. Why doesn't > this > > > work? Can it be made to work? > > > > > > Has anyone found a solution to this problem? I could always draw a > > > histogram first with the appropriate scale, but that's ugly! > > > Thanks, > > > Jeff. > > > > > > p.s. using latest root on redhat 7.3.1 > > > > > > > > >
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:22 MET