Re: [ROOT] Superimposing Graphs with different scales in ROOT Win2K

From: Rene Brun (Rene.Brun@cern.ch)
Date: Sat Jun 15 2002 - 21:33:32 MEST


Your original script does not work under Windows because the TGWin32
interface does not support transparent pads.
Your new script runs correctly.

Rene Brun

On Sat, 15 Jun 2002 gmoloche@mit.edu wrote:

> Guys:
> the macro below does work in Win 2K
> 
> {
>    c1 = new TCanvas("c1","gerrors2",200,10,700,500);
>    TPad *pad = new TPad("pad","",0,0,1,1);
>    pad->SetFillColor(42);
>    pad->SetGrid();
>    pad->Draw();
>    pad->cd();
> 
>    // draw a frame to define the range
>    TH1F *hr = c1->DrawFrame(-0.4,0,1.2,12);
>    hr->SetXTitle("X title");
>    hr->SetYTitle("Y title");
>    pad->GetFrame()->SetFillColor(21);
>    pad->GetFrame()->SetBorderSize(12);
> 
>    Int_t n1 = 10;
>    Double_t x1[]  = {-0.22, 0.05, 0.25, 0.35, 0.5, 0.61,0.7,0.85,0.89,0.95};
>    Double_t y1[]  = {1,2.9,5.6,7.4,9,9.6,8.7,6.3,4.5,1};
>    Double_t ex1[] = {.05,.1,.07,.07,.04,.05,.06,.07,.08,.05};
>    Double_t ey1[] = {.8,.7,.6,.5,.4,.4,.5,.6,.7,.8};
>    gr1 = new TGraphErrors(n1,x1,y1,ex1,ey1);
>    gr1->SetMarkerColor(kBlue);
>    gr1->SetMarkerStyle(21);
>    gr1->Draw("LP");
> 
>    c1->Update();  
>     
>    Double_t xmin = pad->GetUxmin();
>    Double_t ymin1 = pad->GetUymin();
>    Double_t ymin2 = 0;
>    Double_t xmax = pad->GetUxmax();
>    Double_t ymax1 = pad->GetUymax();
>    Double_t ymax2 = 1200;
>    Double_t scaling = (ymax1-ymin1)/(ymax2-ymin2);
>    
>    //draw an axis on the right side
>    TGaxis *axis = new TGaxis(xmax,ymin1,
>          xmax, ymax1,ymin2,ymax2,510,"+L");
>    axis->SetLineColor(kRed);
>    axis->SetTextColor(kRed);
>    axis->Draw();
> 
>     // create second graph
>    Int_t n2 = 10;
>    Float_t x2[]  = {-0.28, 0.005, 0.19, 0.29, 0.45, 0.56,0.65,0.80,0.90,1.01};
>    Float_t y2[]  = {0.82,3.86,7,9,10,10.55,9.64,7.26,5.42,2};
>    Float_t ex2[] = {.04,.12,.08,.06,.05,.04,.07,.06,.08,.04};
>    Float_t ey2[] = {.6,.8,.7,.4,.3,.3,.4,.5,.6,.7};
>    for (Int_t i=0;i<n2;i++) {
>       y2[i] *= 100;
>       ey2[i] *= 100;
>    }
> 
>    for (Int_t i=0;i<n2;i++) {
>       y2[i] = ymin1 + scaling*y2[i];
>       ey2[i] = ymin1 + scaling*ey2[i];
>    }
>       
>    gr2 = new TGraphErrors(n2,x2,y2,ex2,ey2);
>    gr2->SetMarkerColor(kRed);
>    gr2->SetMarkerStyle(20);
>    gr2->SetName("gr2");
>    gr2->Draw("LP");
> 
> }
> 



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:57 MET