TParallelCoord axis limits

Hi,

The new TParallelCoord capability is great! However, the axis limits do not behave as I expect. In my case, I have a TTree variable (ShapeId) that ranges from 0 to 100,000+. When I plot this variable in a histogram, I see the distribution I expect. Whereas, when I plot the data using the “para” option, the lower axis limit stops at ~29,000, even though events exist at a lower value. Two PNGs that illustrate the problem are attached. Is this an expected behavior?

Thanks,

Glen




No that is not really expected. Can you send me a small example reproducing the problem ? with the examples I have I cannot see it.

When you draw the parallel cooordinates using option PARA, are you sure you are drawing all the events of the ntuple ? may be after the option PARA you have an extra parameter which is not 0 (that’s the number of events to be drawn).

I have tried to simulate what you describe with a variable having all its value between 0 and 10000000 except the last value which is -100000 and the axis limits are correct. So the axis limits are computed on the whole data sets (providing, as I said, you gave all the events in the Draw() method)

I have a simple root file that contains a TTree that illustrates my problem. However, it is too large to upload (~5MB). Can I send you the file directly for testing?

Anyway, the commands I use to draw the plots are as follows:

para->Draw(“x:y”,"",“para”)
para->Draw(“y”);
(Note: set the SetLogy to see the distribution of y).

When I do this, the axis range for the y variable is different. My data has 1560754 entries. The branch variable I’m having problems with is of type UInt_t. All the rest are Float_t and seem to work.

While trying to debug my problem, I tried the following:

para->Draw(“x:y”,"",“para”,1000001)

When I did so, I got a segmentation violation…

*** Break *** segmentation violation
(no debugging symbols found)
Using host libthread_db library “/lib/libthread_db.so.1”.
Attaching to program: /proc/24255/exe, process 24255
(no debugging symbols found)…done.
[Thread debugging using libthread_db enabled]
[New Thread -1208764720 (LWP 24255)]
(no debugging symbols found)…done.

I was able to modify the tutorial parallelcoord.C and get the same result. The modified version is attached for your reference.

Thanks for your help!

Glen
parallelcoord_mod.C (2.34 KB)

can you put it somewhere on afs ?

The mod you did in the ||-Coord example from the ROOT tutorial doe not work because in that example the ntuple is meant to be a rather small one sitting in memory and with your mod it does not anymore.

I would prefer to use your file from afs (also give me the macro you are using).

Many thanks to Olivier for solving my problem. It turns out that the number of events in my TTree exceed the default TTree estimation size. My problem was solved simply by doing the following:

para->SetEstimate(para->GetEntries());

or para->SetEstimate(1560754)

in my case.

Thanks for all of the help!

Glen