Add:
hframe->GetYaxis()->SetTickLength(0);
After line 60
From: owner-roottalk_at_root.cern.ch [mailto:owner-roottalk_at_root.cern.ch] On Behalf Of Zoltan Szillasi
Sent: Wednesday, March 23, 2011 3:21 PM
To: roottalk_at_root.cern.ch
Subject: RE: [ROOT] multiple graphs with different axes..
Dear Olivier,
Yes it runs fine on my machine, too, but if I change th 1200 to 1300 in line 58, I still see both axes on the left side.
Cheers,
Z ________________________________
Is this macro Ok for you ? (see attachment)
Olivier
From: owner-roottalk_at_root.cern.ch [mailto:owner-roottalk_at_root.cern.ch] On Behalf Of Zoltan Szillasi
Sent: Wednesday, March 23, 2011 2:38 PM
To: roottalk_at_root.cern.ch
Subject: RE: [ROOT] multiple graphs with different axes..
Dear Olivier,
During the last week we exchanged some e-mails concerning the probably incorrect axis appearence when multiple graphs are displayed with different scales (axes). What is Your opinion, how could I get solution for this problem?
Best Wishes,
Zoltan ________________________________
Dear Olivier,
Well, the right axis displays corrcet, but the one on the left seems to be the two scales superimposed rather. I attached two images: one is taken on my Xp with root v5.26, while the other was made with root v1.18 on my office machine. Both shows this kind of axis. Do You see the same with your root version?
Cheers,
Zoltan ________________________________
From: Zoltan Szillasi <Zoltan.Szillasi_at_cern.ch<mailto:Zoltan.Szillasi_at_cern.ch>>
Date: Sun, 13 Mar 2011 21:00:45 +0000
To: "roottalk_at_root.cern.ch<mailto:roottalk_at_root.cern.ch>" <roottalk_at_root.cern.ch<mailto:roottalk_at_root.cern.ch>>
Subject: [ROOT] multiple graphs with different axes..
Dear All,
I would like to draw two graphs superimposed on the same canvas, but with different Y axes. I found a good example, but the ticks of the second graph appear despite that 'A' is not mentioned in the Draw options. Do You know how could I get rid of it? I'm running 5.28.00 under Windows Xp. This problem is also seen under 5.26 Win version.
Here is the example:
void diffScales(){
gROOT->Reset();
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();TH1F *hr = c1->DrawFrame(-0.4,0,1.2,12);
// draw a frame to define the range
hr->SetXTitle("X title"); hr->SetYTitle("Y title"); pad->GetFrame()->SetFillColor(21); pad->GetFrame()->SetBorderSize(12);
// create first graph
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");
// create second graph
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;
TPad *overlay = new TPad("overlay","",0,0,1,1);
overlay->SetFillStyle(4000); overlay->SetFillColor(0); overlay->SetFrameFillStyle(4000); overlay->Draw(); overlay->cd();
gr2 = new TGraphErrors(n2,x2,y2,ex2,ey2);
gr2->SetMarkerColor(kRed); gr2->SetMarkerStyle(20); gr2->SetName("gr2"); Double_t xmin = pad->GetUxmin(); Double_t ymin = 0;
//Draw an axis on the right side
TGaxis *axis = new TGaxis(xmax,ymin,xmax, ymax,ymin,ymax,510,"+L");
axis->SetLineColor(kRed); axis->SetLabelColor(kRed); axis->Draw();
}
Thanks in advace!
Cheers,
ZoltanReceived on Wed Mar 23 2011 - 15:27:07 CET
This archive was generated by hypermail 2.2.0 : Wed Mar 23 2011 - 17:50:01 CET