Re: [ROOT] 2.25.03: setting TPad transparency and fill color simultaneously

From: Stephen Bailey (bailey@physics.harvard.edu)
Date: Tue Dec 05 2000 - 15:53:58 MET


Hi Matt.

Here's a trick I use frequently to highlight a cut region:
Draw a dummy 2D histogram to get the axis ranges, then draw
a box for the cut region, and then draw the scatter plot with
the "same" option.  e.g.

{
// Run $ROOTSYS/tutorials/hsimple.C first if this file doesn't exist
TFile fi("$ROOTSYS/tutorials/hsimple.root", "Read");

// Dummy Histogram for making the boundaries
TH2F h2("h2", "", 1, -4, 4, 1, -4, 4);

// Box to highlight a region
TBox box(0, 0, 4, 4);
box.SetFillColor(5);

// Draw the histogram, then the box, then the scatter plot
h2.Draw();
box.Draw();
gPad->RedrawAxis();  // since the box obscures the ticks
ntuple.Draw("px:py", "", "same");
}

I was also disappointed to discover that the TPad transparency
didn't blend colors.  I think it would be great if the transparency
options of AttFill did full alpha blending.  I would use it, e.g.,
when drawing one 1D histogram that overlaps another when I don't want
to completely obscure the histogram in the background.

Stephen


On Mon, 4 Dec 2000, Matthew D. Langston wrote:

> Hi all,
> 
> I think I am trying to go about setting the transparency and fill color of a
> TPad in the wrong way.
> 
> The problem I am trying to solve is to highlight a small section of a
> scatterplot.  The area of the scatterplot I want to highlight represents a
> cut.  My first attempt to do this was to put a TPad on top of the
> scatterplot and set the TPad's transparency to 4050 (i.e. semi-transparent)
> and its fill color to 2 (i.e. red).
> 
> I did this as follows:
> 
> myPad->SetFillStyle( 4050 );
> myPad->SetFillColor( 2 );
> myPad->Modified();
> myPad->Update();
> 
> The last two commands (i.e. the calls to Modified and Update) don't do
> anything from the command line.  I have to use the SetFillAttributes context
> menu of myPad to set the fill color to red by clicking the Apply button.  Is
> this right?  Isn't there a way to do this from the command line?
> 
> It appears that only one of these settings (i.e. transparency and fill
> color) can take affect at the same time, i.e. I can either have a
> semi-transparent TPad that has no color (so that I can see the scatterplot
> points below it), a solid red TPad (that hides the scatterplot points
> beneath it), but not both.
> 
> So, is it possible to set the transparency and the fill color of a TPad
> simultaneously?  If so, is there a way to do it from the command line?
> 
> Also, is this the right way to highlight a section of a scatterplot?  Would
> it be better to use something like a TBox or a TWbox instead?
> 
> Thank you for any help.
> 
> Regards, Matt
> 
> --
> Matthew D. Langston
> SLD, Stanford Linear Accelerator Center
> langston@SLAC.Stanford.EDU
> 



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