Hello Rooters,
I was just wondering about TH1 objects ; usually when I want to plot
an/several histo(s) and/or save it(them),the different steps look like:
- create my histo
- fill it
- give some attributes settings (color, marker style and so on)
- draw or histo->Write()
If I want my histo(s) to have a log scale (x or y), I have to act on the
corresponding pad through the SetLogX method. So this operation can only
be done once the histo has been drawn or saved.
Since I'm a lazy guy, I usually write some macros to plot/save several
histos like :
void Plot_ps(TH1* hist1, Char_t* title = "", Char_t* option = "",
Bool_t logy = 0, Bool_t logx = 0, Bool_t fit = 0,
Int_t stati = 111111, Bool_t wait = 0, etc .....)
{
TCanvas *c1 = (TCanvas*)gROOT->FindObject("c1");
if (c1) {c1->Clear();}
else {
style();
c1 = (TCanvas*)gROOT->FindObject("c1");
}
TPad* pad1 = new TPad("pad1","pad",0.03,0.03,0.98,0.98);
pad1->Draw();
if (logy) pad1->SetLogy(); if (logx) pad1->SetLogx();
pad1->cd();
hist1->SetFillColor(5);
hist1->SetEverythingIwantToDoToHaveANiceHisto();
if (fit) hist1->Fit("gaus");
hist1->GetXaxis()->SetTitleSize(0.05);
hist1->Draw(option);
// l'histo est memorise
c1->Update();
}
but it's not always a convenient situation.
In fact there are a lot of things that can be set in before "validating"
a histo (about ~40 "Set..." methods dealing with content,axis
range,colors, etc ...) so why not SetLogX/Y ?
It should be nice to have this possibility in TH1 or in TAxis (so that a
histo->GetXAxis()->SetLogX() could be done).
Or did I miss something and this operation is already available ??
Cheers,
sebastien.
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:50 MET