Re: Another TGraph question

From: Rene Brun (Rene.Brun@cern.ch)
Date: Sat Mar 04 2000 - 16:28:15 MET


Hi Anton,
You can set the pad not editable via
  gPad->setEditable(kFALSE);
You can still locate, use the context menu, but the
functions ExecuteEvent return immediatly.
One could imagine a TGraph::SetEditable function
or like for histograms a switch to enable/disable the editing
of a graph.

Rene Brun

On Fri, 3 Mar 2000, Anton Fokin wrote:

> Hi Rene and others,
> 
> Just a question ... If I have a graph with a lot of points, it is not easy
> to pick with mouse something in-between of them to move the whole graph up
> and down. Also it is a bit confusing for a user when he/she clicks on a
> graph, then a number of points becomes shown at once, then he/she drags and
> drops a point and then you know what happens, but she/he doesn't -> panic
> and run away. Is it possible to turn off this functionality in some
> applications?
> 
> Best regards,
> Anton
> 
> -----Original Message-----
> From: brun@pcbrun.cern.ch [mailto:brun@pcbrun.cern.ch]On Behalf Of Rene
> Brun
> Sent: Friday, March 03, 2000 11:49 AM
> To: Anton Fokin
> Cc: Rene Brun; roottalk@pcroot.cern.ch
> Subject: Re: TGraph drawing options
> 
> 
> Hi Anton,
> You will get may be some more inspiration from the macro below.
> This macro exploits the power of the list of functions
> associated with a TH1 object. The list of objects there
> is obviously persistent. Just check it after having run the macro,
> you can start a new session with
>   Root > TFile f("anton.root");
>   Root > hgr->Draw("p");
> 
> Also in the macro, note the way to specify clipping to the frame
> boundary
> in a pad (this applies to markers, polymarkers, lines and graphs).
> 
> I am reluctant to add this kind of functionality to TGraph.
> I would like this class to be a light weight class (already too big).
> If I implement an additional member as you suggest to support
> color for each marker, the next client will request another array
> to specify different marker styles and why not marker colors.
> This is so simple to implement with TMarker.
> 
> Rene Brun
> 
> {
>    gROOT->Reset();
>    gStyle->SetPalette(1);
>    gStyle->SetOptStat(0);
>    c1 = new TCanvas("c1");
>    c1->SetBit(TGraph::kClipFrame);
> 
>    TFile *f = new TFile("anton.root","recreate");
>    const Int_t n = 20;
>    TH1F *hgr = new TH1F("hgr","a simple graph",n,0.5,n+0.5);
>    hgr->SetMarkerStyle(21);
>    hgr->SetXTitle("X title");
>    hgr->SetYTitle("Y title");
>    for (Int_t i=1;i<=n;i++) {
>       hgr->SetBinContent(i,10*sin(0.1*i));
>       TMarker *m = new TMarker(hgr->GetBinCenter(i),
>                            0.5*hgr->GetBinContent(i),22);
>       m->SetMarkerColor(2*i+60);
>       hgr->GetListOfFunctions()->Add(m);
>    }
>    TPaveLabel *pl = new TPaveLabel(6,1,20,2.2,
>       "To show GetListOfFunctions persistency");
>    hgr->GetListOfFunctions()->Add(pl);
>    hgr->Draw("p");
>    hgr->Write();
> }
> 
> 
> Anton Fokin wrote:
> >
> > Hi Rene,
> >
> > this is not exactly a solution I want to have. A set of markers is not a
> > graph, isn't it? Apart from not be able to handle it as a single object
> > (i.e. read, write, send, change attributes for each point at once), you
> have
> > some problems with drawing, for example with clipping (on zoom you get
> > points painted outside the histogram).
> >
> > Best,
> > Anton
> >
> > -----Original Message-----
> > From: Rene Brun [mailto:brun@pcbrun.cern.ch]
> > Sent: Thursday, March 02, 2000 11:06 PM
> > To: Anton Fokin
> > Cc: Rene Brun; roottalk@pcroot.cern.ch
> > Subject: Re: TGraph drawing options
> >
> > Hi Anton,
> > What you want is already implemented. I show two methods
> > in the example below> I hope it is clear enough.
> >
> > Rene Brun
> >
> > {
> >    gROOT->Reset();
> >    gStyle->SetPalette(1);
> >    gStyle->SetOptStat(0);
> >    c1 = new TCanvas("c1");
> >    c1->SetGrid();
> >
> >    const Int_t n = 20;
> >    TH1F *hgr = new TH1F("hgr","a simple graph",n,0.5,n+0.5);
> >    for (Int_t i=1;i<=n;i++) hgr->SetBinContent(i,10*sin(0.1*i));
> >    hgr->SetMarkerStyle(21);
> >    hgr->SetXTitle("X title");
> >    hgr->SetYTitle("Y title");
> >    hgr->Draw("p");
> >    for (Int_t j=1;j<=n;j++) {
> >       TMarker *m = new TMarker(hgr->GetBinCenter(j),
> >                            0.5*hgr->GetBinContent(j),22);
> >       m->SetMarkerColor(j);
> >       m->Draw();
> >    }
> > }
> >
> > On Thu, 2 Mar 2000, Anton Fokin wrote:
> >
> > > Hi rooters!
> > >
> > > I think it would be nice to have a mode in which point number is drawn
> as
> > a
> > > marker for TGraph. It is very useful if you want to plot, for example,
> > > points from an event generator running with different sets of initial
> > > conditions, i.e. 1,2,3,4,5 and you want to see a correspondence between
> > set
> > > number and a point on the graph.
> > >
> > > It would be nice of course to have an opportunity to set different
> > > colors/attributes for every graph point, but it is not easy to
> implement.
> > > Well, it is easy if Rene adds a "fZ" array with point colors and then
> > > changes a bit Paint function :)
> > >
> > > Best regards,
> > > Anton
> > >
> 



This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:20 MET