Re: options drawing multigraphs

From: Mateusz Ploskon <M.Ploskon_at_gsi.de>
Date: Tue, 12 Apr 2005 17:03:05 +0200


Thank You very much for Your answer...
But if You could spend a second and execute this macro... In my case the only message which I see is: <TCanvas::MakeDefCanvas>: created default TCanvas with name c1 and4 empty lines...

{
  Float_t x[2] = {0, 1};
  Float_t y[2] = {1, 2};
  TGraph *tg1 = new TGraph(2, x, y);
  TGraph *tg2 = new TGraph(2, y, x);

  TMultiGraph *tgr = new TMultiGraph("tgr", "tgr");   tgr->Add(tg1);
  tgr->Add(tg2);

  tgr->Draw("ALP");   

  cout << tg1->GetDrawOption() << endl;
  cout << tg2->GetDrawOption() << endl;

  gPad->Update();

  tg1->SetDrawOption("F");
  tg2->SetDrawOption("F");

  cout << tg1->GetDrawOption() << endl;
  cout << tg2->GetDrawOption() << endl;

}

It seems that the gPad is set but the functions TGraph::Draw() are never called(?) How then the TMultiGraph paints the graphs(?)->(see below)

I cannot change the DrawOptions for each of the TGraphs? This is my problem...:

void TMultiGraph::Draw(Option_t *option) {
//*-*-*-*-*-*-*-*-*-*-*Draw this multigraph with its current
attributes*-*-*-*-*-*-*
//*-* ==========================================
//
// Options to draw a graph are described in TGraph::PainGraph
//
// The drawing option for each TGraph may be specified as an optional
// second argument of the Add function.
// If a draw option is specified, it will be used to draw the graph,
// otherwise the graph will be drawn with the option specified in
// TMultiGraph::Draw

  AppendPad(option);
}

My best,
Mateusz

On Tuesday 12 April 2005 15:51, you wrote:

> Hi  Mateusz,
>
> before calling object.GetDrawOption, you must have called object.Draw.
> See doc at
> http://root.cern.ch/root/htmldoc/TObject.html#TObject:GetDrawOption
> http://root.cern.ch/root/htmldoc/TObject.html#TObject:SetDrawOption
>
> For your point about finding the options in a list, see an example at
> http://root.cern.ch/root/htmldoc/src/TObject.cxx.html#TObject:GetDrawOption
>
> Rene Brun
>
> On
>
> Tue, 12 Apr 2005, Mateusz Ploskon wrote:
> > Please consider following:
> >
> > root [7] TH1F *alax = new TH1F("alax","alax", 12,10,111);
> > root [8] alax->SetOption("la")
> > root [9] alax->GetOption()
> > (const Option_t* 0x90d16ec)"la"
> > root [10] alax->SetDrawOption("la")
> > root [11] alax->GetDrawOption()
> > (const Option_t* 0xd0b416)""
> >
> > Actually, my question is how can I get the option of a TGraph which is
> > owned by a TMultiGraph...
> > What's wrong with the following code(?) for example:
> >
> >   TMultiGraph *tmgr = new ....
> >   tmgr->Add(..., "L");
> > 	...
> >   TList *hlist = (TList*)tmgr->GetListOfGraphs();
> >   TIter *hiter = new TIter(hlist);
> >
> >   TGraph *hist = 0;
> >   hiter->Reset();
> >   while ((hist = (TGraph*)hiter->Next()) != NULL)
> >     {
> >       cout << "Draw option?" << hist->GetTitle() << " " <<
> > hist->GetDrawOption() << endl; // nothing... :(
> >     }
> >
> > On a side I have the impression that this option'ing stuff is a bit
> > messy...
> >
> > my best!
> > m.
> >
> > PS I've read the sources of TObject etc...

-- 
Mateusz Ploskon
GSI Planckstrasse 1
D-64291 Darmstadt
Tel.: +49-6159-71-2914
Received on Tue Apr 12 2005 - 17:03:22 MEST

This archive was generated by hypermail 2.2.0 : Tue Jan 02 2007 - 14:45:06 MET