Re: [ROOT] Dynamic Graphing

From: Rene Brun (Rene.Brun@cern.ch)
Date: Thu May 29 2003 - 19:23:05 MEST


Hi Jason,

When you use DrawGraph, a copy of the graph is created.
If you do not clear the pad, this copy stays in the pad.
At the first iteration, you draw a copy of the 1st graph,
at the second iteration, a copy of the 1st and 2nd graph.
At the last iteration, you have 32 graphs in the pad.
To solve the problem, simply replace the line:

   gr1->DrawGraph(i, x, dy, "ALP");
by
   gr1->Draw("ALP");

Rene Brun

On Wed, 28 May 
2003, Jason -- wrote:

> Dear Rooters,
> 
> I'm trying to plot a set of data to which new points are continuously being 
> added.  To test this out, I wrote the following macro, which calculates the 
> difference between two values and then plots the difference.  I included a 
> loop that increases the number of points to graph with each iteration, and 
> redraw the graph with every iteration.  The graph works as I had hoped, 
> clearing the active pad and redrawing the graph each time a new data point 
> is added.  However, I can't seem to get the axes to redraw, and this results 
> in a bunch of different overlapping scales on both the x- and y-axis.  Any 
> suggestions?
> 
> Thanks,
> 
> Jason
> 
> 
> void Dynamic()
> {
> Int_t i;
> const Int_t N = 32;
> 
> Double_t x[N+1] =
>   { 293., 291., 288., 286., 280., 270., 260., 250.,
>   240., 230., 220., 210., 200., 190., 180., 170.,
>   160., 150., 140., 130., 120., 110., 100.,  90.,
>   80.,  70.,  60.,  50.,  40.,  30.,  20.,  10., 0.
>   };
> 
> Double_t y[N+1] =
>   {
>   52.1705, 81.5672, 0.0, 37.2873, 118.617, 203.3, 270.579, 349.675, 430.074,
>   511.98, 593.394, 667.308, 753.741, 828.314, 906.517, 984.533, 1065.13,
>   1144.57, 1221.71, 1300.72, 1385.65, 1467.83, 1552.11, 1633.02, 1711.6,
>   1796.59, 1881.22, 1967.85, 2051.02, 2135.62, 2221.47, 2311.31, 2400.0
>   };
> 
> Double_t dy[N] = {0.};
> for (i=N-1; i>0; i--) dy[i] = y[i+1] - y[i];
> 
> TCanvas *c1 = new TCanvas("c1","Voltage Differences",1);
> 
> for (i = 1; (i < N); i++)
> {
>   TGraph *gr1 = new TGraph(i);
> 
>   gr1->SetMarkerStyle(7);
>   gr1->SetMarkerColor(4);
>   gr1->SetMarkerSize(2);
>   gr1->SetLineColor(4);
> 
>   gr1->DrawGraph(i, x, dy, "ALP");
>   gPad->Update();
>   delete gr1;
> }
> }
> 
> p.s, I'm using version 3.05/05.
> 
> _________________________________________________________________
> MSN 8 helps eliminate e-mail viruses. Get 2 months FREE*.  
> http://join.msn.com/?page=features/virus
> 



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:12 MET