Re: [ROOT] automatic update of axis range while looping over TGraphs

From: Rene Brun (Rene.Brun@cern.ch)
Date: Mon Jul 09 2001 - 10:08:12 MEST


Hi Dirk,

The axes range is automatically updated. However in your example
you always draw straight lines. Just move the call to gRandom inside the loop.

Rene Brun

Dirk Meier wrote:
> 
> Hi,
> 
> the program below draws TGraphs in two TPads.
> The contents of the TGraphs changes inside a loop
> and I would like to display the new TGraphs
> after each change.
> 
> The problem is that the axis range does not
> update automatically.
> 
> How could I implement  automatic update of axis
> ranges ?
> 
> best regards
> Dirk Meier
> 
> //
> {
>   gROOT->Reset();
> 
>   TCanvas *c = new TCanvas("c","canvas bla",500,300);;
> 
>   TList *gList = new TList();
> 
>   for(Int_t pk = 1; pk<=2; pk++) {
>     gList->Add( new TGraph(3) );
>   }
> 
>   c->Divide(2,1);
> 
>   c->cd(1);
>   gList->At(0)->Draw("AL*");
>   c->cd(2);
>   gList->At(1)->Draw("AL*");
> 
>   Char_t   tName[20];
>   TPad *tPad;
> 
>   TIter tNextGraph(gList);
>   TGraph *aGraph;
> 
>   for(Int_t i = 1; i<=600; i++) {
>     Int_t pk=1;
>     while (aGraph = (TGraph*)tNextGraph() ) {
>       sprintf(tName,"c_%d",pk++);
>       tPad = (TPad*)c->GetPrimitive(tName);
>       cout << i << " " << tName << endl;
>       Float_t value =  gRandom->Rndm();
>       for(Int_t k = 1; k<=10; k++) {
>         aGraph->SetPoint(k-1, k*value, k*value*value);
>       }
>       tPad->Modified();             // needed for notifying that graph and pad were changed
>       tPad->Update();               // needed for displaying the current graph
>     }
>     tNextGraph.Reset();
>   }
> }



This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:51 MET