Re: [ROOT] log scale axis range problem

From: Rene Brun (Rene.Brun@cern.ch)
Date: Mon Nov 04 2002 - 22:21:46 MET


Hi Kate,

Both problems are fixed now in the CVS version. 
There was a special scale in log scale when the maximum is less than 1.

Rene Brun

On Mon, 4 Nov 2002, Kate Scholberg wrote:

> > >
> > > I suspect this is a simple problem.  I'm just trying to Draw a simple
> > > 1D histogram with a log scale, and I'm having trouble getting a
> > > sensible default range of values on the y-axis from the Draw method.  I
> > > also don't seem to able to set the axis range by hand with e.g.
> > >
> > > hist->GetYaxis()->SetRange(min,max);
> 
> 
> > //adchithist2->GetYaxis()->SetRange(0.01,10.);
> > adchithist2->SetMinimum(0.01);
> > adchithist2->SetMaximum(10);
> > adchithist2->Draw();
> > adchithist2->Print("all");
> 
> 
> OK, this works.  But wouldn't it be a more sensible default behavior
> to have the axis range automatically set correctly for a log plot?
> Shouldn't the histograms know what their minimum and maximum (nonzero) values
> are?  Is there a good reason why this doesn't work automatically?
> 
> But leaving that aside for the moment, I have another log scale plot
> with a scaled histogram that isn't plotting correctly.  The simple
> macro example is attached. Root 3.03/06 works but Root 3.03/08 and
> beyond (including the latest version from the cvs repository) just
> plot nothing at all, although it seems to choose a reasonable y-axis
> (in all cases RH Linux 7.3).  It seems to matter what the value used
> for scaling actually is. A bug?
> 
> Kate Scholberg
> schol@mit.edu
> 
> 
> ------------------------------------------------------------
> 
> void Scaled_hist()
> {
> 
>   TCanvas *c2 = new TCanvas("c2","TRD hit dE");
>   c2->SetLogy(1);
>   c2->SetFillColor(10);
> 
>   gStyle->SetOptStat(0);
> 
>   Int_t nbin = 200;
>   Float_t firstbin = 0.;
>   Float_t lastbin = 200.;
> 
>   TH1F *detrd = new TH1F("detrd","dE from TRD",nbin,firstbin,lastbin);
> 
>   Float_t sum=0.;
> 
>   for(int i=0;i<1000;i++){
>    sum = Float_t(gRandom->Gaus(0,20));
>    detrd->Fill(sum);
>   }
> 
>   detrd->Scale(1./50.);
> 
>  detrd->SetMarkerColor(2);
>  detrd->SetMarkerStyle(22);
> 
>  detrd->Draw("p");
> }
> 
> 
> 
> 
> 



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