Do not use the Draw option "CP" when you have so many points
and use a more optimized algorithm as shown below
Rene Brun
{
    gROOT->Reset();
    TCanvas *c1 = new TCanvas("c1"," ",200,10,700,500);
    TH1F *hr = c1->DrawFrame(0.0001,0.00001,1,100);
    c1->SetLogx();
    c1->SetLogy();
    ifstream my("test.dat");
      my >> x >> y;
      gr->SetPoint(i,x,y);
    gr->SetLineWidth(2);
    gr->GetXaxis()->SetTitle("x");
    gr->GetYaxis()->SetTitle("f(x)");
On Wed, 19 Apr 
2006, Ding Hengtong wrote:
>
> Hi Rooters,
>
> I want to plot a data file which has 999999 lines,  I used
> TGraph class in ROOT but I can't get a figure but just a canvas with
> axis instead.
>
> My code is listed below and according to ROOT Guide, Int_t is 4 Bytes,
> ranges from -2^{31} to 2^{31}-1 and 999999 is actually in this range.
> And I also tried "Long64_t", by which I still can't get the figure I
> wanted. I don't know what's wrong.
>
> {
>   gROOT->Reset();
>   TCanvas *c1 = new TCanvas("c1"," ",200,10,700,500);
>   TH1F *hr = c1->DrawFrame(0.0001,0.00001,1,100);
>   c1->SetLogx();
>   c1->SetLogy();
>   ifstream my("test.dat");
>   const Int_t n = 999999;
>   Double_t x[n], y[n];
>   for (Int_t i=0;i<n;i++) {
>     my >> x[i] >> y[i];
>   }
>   TGraph *gr = new TGraph(n,x,y);
>   gr->SetLineWidth(2);
>   gr->GetXaxis()->SetTitle("x");
>   gr->GetYaxis()->SetTitle("f(x)");
>   gr->Draw("CP");
> }
>
>  Thanks for any help.
>
> Regards,
>
> Hengtong
>
>
Received on Wed Apr 19 2006 - 09:42:20 MEST
This archive was generated by hypermail 2.2.0 : Mon Jan 01 2007 - 16:31:58 MET