Hi,
I'm trying to find the way to save the palette information with a
colz-histogram into the root file (see the code below). When I open the file
I see that the number of contours gets saved, but the colors are different.
Also when I even just move something with mouse on the histogram that just
was drawn I loose my colors too. I tried it in two versions: 3.03/06 and
3.05/00 from Fermi build. In 3.05/00 I also have the errors like that:
root [0]
Attaching file hsimple.root...
Warning in <TClass::TClass>: no dictionary for class TPaletteAxis is available
root [1]
root [1] TBrowser b
root [2] Error in <TBuffer::CheckByteCount>: object of class TPaletteAxis read
too few bytes: 17 instead of 311
Warning in <TBuffer::CheckByteCount>: TPaletteAxis::Streamer() not in sync
with data on file, fix Streamer()
Error in <TBuffer::CheckByteCount>: object of class TPaletteAxis read too few
bytes: 4 instead of 298
Warning in <TBuffer::CheckByteCount>: TPaletteAxis::Streamer() not in sync
with data on file, fix Streamer()
and also I see that the statistics box appears behind the palette then.
One more question:
in a simple setting, like in the example below, I managed to learn how to save
the statistics boxes style settings in a file, but in a more complex system
(the CDF online monitoring software) sometimes I can't figure out why it is
not working (also SetContour(7) doesn't work for me there). So the question
is: is there anything more I should know other then a) create histograms
after setting the style, b) update canvas after drawing them?
regards,
Vadim
file try.C:
-----------------------------------------------------
void setStyle(TStyle *st){
st->SetOptStat(1110);
st->SetStatColor(0);
st->SetTitleColor(0);
st->SetTitleW(0.57);
st->SetCanvasBorderMode(0);
st->SetFrameBorderMode(0);
st->SetCanvasColor(0);
}
void try (){
TList *l = new TList();
TStyle *myStyle = new TStyle("xx","xx");
setStyle(myStyle);
TStyle *ssave = gStyle;
myStyle->cd();
TFile* hfile = new TFile("hsimple.root","RECREATE");
int colours[]={1,12,28,39,47,3,5};
gStyle->SetOptStat(1110);
// gROOT->ForceStyle();
TH2F *hist = new TH2F("Gaussian","Gaussian",10,-10,10,10,-10,10);
TH2F *histb = new TH2F("GaussianB","GaussianB",20,-10,10,20,-10,10);
gRandom->SetSeed();
for (Int_t i = 0; i < 10000; i++){
hist->Fill(gRandom->Gaus(0,5),gRandom->Gaus(0,5));
histb->Fill(gRandom->Gaus(0,6),gRandom->Gaus(0,4));
}
TCanvas *c1 = new TCanvas("c1","c1",600,800);
c1->Divide(1,2);
c1->cd(1);
hist->SetContour(7);
gStyle->SetPalette(7,colours);
// gROOT->ForceStyle();
hist->Draw("colz");
gPad->Update();
c1->cd(2);
gStyle->SetOptStat(10);
histb->SetContour(7);
gStyle->SetPalette(7,colours);
histb->Draw("colz");
c1->Modified();c1->Update();
gStyle = ssave;
l->Add(c1);
l->Write();
hfile->Write();
}
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:10 MET