Hi Stephen, The following script shows 3 histograms superimposed with "transparent" fill areas. This technique works on the screen and on Postscript. Semi transparent images are difficult to get with Postscript. Rene Brun { TH1F h1("h1","background",100,-4,4); h1.FillRandom("gaus",25000); h1.SetFillColor(38); h1.Draw(); TH1F h2("h2","foreground",100,-4,4); TF1 f2("f2","gaus",-3,-1); f2.SetParameters(1,-2,0.5); h2.FillRandom("f2",5000); h2.SetFillStyle(3010); h2.SetFillColor(41); h2.Draw("same"); TH1F h3("h2","foreground",100,-4,4); TF1 f3("f3","gaus",-1.5,-0.5); f3.SetParameters(1,-1,0.15); h3.FillRandom("f3",3500); h3.SetFillStyle(3012); h3.SetFillColor(50); h3.Draw("same"); } Stephen Bailey wrote: > > 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