Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
grad2.C File Reference

Detailed Description

Gradient fill with transparency and the "SAME" option.

To use this macro you need OpenGL enabled in pad: either set OpenGL.CanvasPreferGL to 1 in $ROOTSYS/etc/system.rootrc; or call gStyle->SetCanvasPreferGL(kTRUE); before canvas created.

//Includes for ACLiC (cling does not need them).
#include "TColorGradient.h"
#include "TCanvas.h"
#include "TError.h"
#include "TColor.h"
#include "TStyle.h"
#include "TH1F.h"
void grad2(bool gl = true)
{
//Make sure canvas supports OpenGL.
//2. Check that we have a canvas with an OpenGL support.
auto cnv = new TCanvas("grad2", "gradient demo 2", 100, 100, 800, 600);
if (!cnv->UseGL() && !cnv->IsWeb())
::Warning("grad2", "This macro requires either OpenGL or Web canvas to correctly handle gradient colors");
//3. Custom colors:
// a) Custom semi-transparent red.
auto customRed = TColor::GetColor((Float_t) 1., 0., 0., 0.5);
// Custom semi-transparent green.
auto customGreen = TColor::GetColor((Float_t) 0., 1., 0., 0.5);
// 4. Linear gradient colors
// b) Gradient (from our semi-transparent red to ROOT's kOrange).
// Linear gradient is defined by: 1) angle in grad
// 2) colors (to interpolate between them),
// If necessary, TLinearGradient object can be retrieved and modified later
auto grad1 = TColor::GetLinearGradient(90., {customRed, kOrange});
//Vertical gradient fill.
auto grad2 = TColor::GetLinearGradient(90., {customGreen, kBlue});
auto hist = new TH1F("a2", "b2", 10, -2., 3.);
auto hist2 = new TH1F("c3", "d3", 10, -3., 3.);
hist->FillRandom("landau", 100000);
hist2->FillRandom("gaus", 100000);
hist->SetFillColor(grad1);
hist2->SetFillColor(grad2);
hist2->Draw();
hist->Draw("SAME");
}
float Float_t
Definition RtypesCore.h:57
@ kOrange
Definition Rtypes.h:67
@ kBlue
Definition Rtypes.h:66
void Warning(const char *location, const char *msgfmt,...)
Use this function in warning situations.
Definition TError.cxx:229
R__EXTERN TStyle * gStyle
Definition TStyle.h:433
The Canvas class.
Definition TCanvas.h:23
static Int_t GetLinearGradient(Double_t angle, const std::vector< Int_t > &colors, const std::vector< Double_t > &positions={})
Static function: Returns the linear gradient color number corresponding to specified parameters.
Definition TColor.cxx:2115
static Int_t GetColor(const char *hexcolor)
Static method returning color number for color specified by hex color string of form: "#rrggbb",...
Definition TColor.cxx:1839
1-D histogram with a float per channel (see TH1 documentation)
Definition TH1.h:621
void SetCanvasPreferGL(Bool_t prefer=kTRUE)
Definition TStyle.h:339
Authors
Timur Pocheptsov, Sergey Linev

Definition in file grad2.C.