Re: [ROOT] rotate and mirror axis

From: Rene Brun (Rene.Brun@cern.ch)
Date: Fri Nov 07 2003 - 15:28:03 MET


Hi Bernd,

We do not have an option in TGraph to do directly what you want, but
it is doable. See the script example in attachement.
Note also that instead of calling
  TGraph(n,x,y);
you can do
  TGraph(n,y,x);

Rene Brun

Bernd Reinhold wrote:
> 
> Hi!
> 
> How can I rotate and mirror the Axis of a TGraph. Default is:
> y/\
>  |
>  |-->x but I need: y<--|
>                              |
>                              \/x
> 
> Thanks, Bernd.
> 
> This was in the archive. But: How to do this?
> > Support for this feature could be implemented for simple cases (TGraph or
> TH1)
> 
> On Thu, 5 Jul 2001, Rene Brun wrote:
> 
> > Hi Harufumi,
> >
> > Plotting downwards is not implemented.
> > Support for this feature could be implemented for simple cases (TGraph or
> TH1)
> > However, objects of these types with error bars and associated functions,
> > annotations, log scales, etc would be more complex to support.
> > The only solution that I see is to have this logic at the TPad level, but
> > it would have side-effects for the annotations.
> >
> > Rene Brun
> >
> > Harufumi Tsuchiya wrote:
> > >
> > > Hi Rooters,
> > >
> > > I have the data from 14.0 to 28 along y axis and
> > > I would like to plot the data from 28 to 14.
> > > I succeeded in showing the decreasing number on y axis,
> > > using TGaxis sample.
> > > But, in this case, data points is plotted from 14 to 28.
> > >
> > > Here, I have a question.
> > > Must I modify the original data points for plotting
> > > on correct position or Is there a elegant way to make such
> > > a plot using ROOT class ?
> > >
> > > Tkank for you helps.
> > >
> > > Harufumi Tsuchiya.
> >

void gminus () {
   c1 = new TCanvas("c1","A Simple Graph Example",200,10,700,500);
   c1->SetGrid();
   c1->SetTopMargin(0.15);
   
   const Int_t n = 20;
   Double_t x[n], y[n];
   for (Int_t i=0;i<n;i++) {
     x[i] = -i*0.5;
     y[i] = -2+10*sin(x[i]+0.2);
   }
   gr = new TGraph(n,y,x);
   gr->SetMarkerStyle(21);
   gr->SetTitle("a rotated graph");
   gr->Draw("ACP");
   TH1 *frame = gr->GetHistogram();
   gr->GetXaxis()->SetLabelOffset(99);
   gr->GetYaxis()->SetLabelOffset(99);
   c1->Update();
   
   //draw an axis at the right side
   TGaxis *ar = new TGaxis(gPad->GetUxmax(),gPad->GetUymin(),
         gPad->GetUxmax(), gPad->GetUymax(),
         gPad->GetUymin(), gPad->GetUymax(),510,"+L");
   ar->Draw();
   ar->SetTitle("the right axis title");
   ar->CenterTitle();      
   //draw an axis at the top
   TGaxis *at = new TGaxis(gPad->GetUxmin(),gPad->GetUymax(),
         gPad->GetUxmax(), gPad->GetUymax(),
         gPad->GetUxmin(), gPad->GetUxmax(),510,"-");
   at->Draw();
   at->SetTitle("the top axis title");
   at->CenterTitle();      
}



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