Hi Mike, Getting more than one "stats" box was problematic in case of TGraph. I have improved the situation in the current development version in CVS. With the new version, a TPaveStats objects is connected to the producer (TH1, TGraph). The TPaveStats object is added to the list of functions. For example, after painting a histogram, one can retrieve its stats box with: TPaveStats *stats = (TPaveStats*)h->GetListOfFunctions()->FindObject("stats"); The old form, getting the pointer via gPad->GetPrimitive("stats") is still supported. With the new way, it is not necessary to rename the existing "stats" box. For example, the following 3 lines: h1->Draw(); h2->Draw("sames"); h3->Draw("sames"); will produce one "stats" box for each histogram. You can modify the position of each box as usual, via the mouse or via calls to stats->SetX1NDC(new x position), etc. With the new version, previous problems experienced when redrawing the canvas after a write/read operation are also fixed. You will find below a new version of your example that is simpler and gives correct results: Rene Brun { gStyle->SetMarkerStyle(8); gStyle->SetMarkerSize(.5); gStyle->SetOptFit(); double x[5]={1.0, 2.0, 3.0, 4.0, 5.0}; double y[5]; double z[5]; { for(int i=0; i<5; i++){ y[i]=x[i]; z[i]=2*x[i]; } } TGraph* g1 = new TGraph(5, x, y); g1->SetName("g1"); g1->SetMarkerColor(2); TGraph* g2 = new TGraph(5, x, z); g2->SetName("g2"); g2->SetMarkerColor(4); TMultiGraph* mg = new TMultiGraph(); mg->Add(g1); mg->Add(g2); mg->Draw("ap"); gStyle->SetFuncColor(1); g1->Fit("pol1"); g2->Fit("pol1"); gPad->Update(); TPaveStats* sb2=(TPaveStats *)(g2->GetListOfFunctions()->FindObject("stats")); sb2->SetX1NDC(.2); sb2->SetX2NDC(.4); sb2->SetY1NDC(.7); sb2->SetY2NDC(.9); sb2->SetTextColor(4); gPad->Modified(); } On Wed, 10 Jul 2002, Mike Kordosky wrote: > Hi, > > I am trying to do the following: > > Make 2 graphs. Put them on the same plot. Fit them both. Display the > fit result boxes from both fits. > > I cannot seem to get the last part right. I include an example macro. > The macro ends up drawing 4 stats boxes. After doing the second fit, I > call TPad::GetPrimitive() and somehow pick up the result from the first > fit. > > May I suggest that a HOWTO on "Overlaying Multiple Plots With Multiple > Stats Boxes" would be very useful, as I've seen roottalk posts about this > in the past. > > Thanks, > > Mike Kordosky > > -- > Graduate Research Assistant // High Energy Physics Lab > kordosky@hep.utexas.edu // University of Texas at Austin > kordosky@fnal.gov // > ph: (512) 471-8426 (RLM Lab, Office) > (512) 475-8673 (ENS Lab) >
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:59 MET