Logo ROOT  
Reference Guide

The color creation and management class.

Introduction

Colors are defined by their red, green and blue components, simply called the RGB components. The colors are also known by the hue, light and saturation components also known as the HLS components. When a new color is created the components of both color systems are computed.

At initialization time, a table of colors is generated. An existing color can be retrieved by its index:

TColor *color = gROOT->GetColor(10);

Then it can be manipulated. For example its RGB components can be modified:

color->SetRGB(0.1, 0.2, 0.3);

A new color can be created the following way:

Int_t ci = 1756; // color index
TColor *color = new TColor(ci, 0.1, 0.2, 0.3);
Since
6.07/07: TColor::GetFreeColorIndex() allows to make sure the new color is created with an unused color index:
TColor *color = new TColor(ci, 0.1, 0.2, 0.3);

Two sets of colors are initialized;

  • The basic colors: colors with index from 0 to 50.
  • The color wheel: colors with indices from 300 to 1000.

Basic colors

The following image displays the 50 basic colors.

{
TCanvas *c = new TCanvas("c","Fill Area colors",0,0,500,200);
c->DrawColorTable();
return c;
}

The color wheel

The wheel contains the recommended 216 colors to be used in web applications.

The colors in the color wheel are created by TColor::CreateColorWheel.

Using this color set for your text, background or graphics will give your application a consistent appearance across different platforms and browsers.

Colors are grouped by hue, the aspect most important in human perception. Touching color chips have the same hue, but with different brightness and vividness.

Colors of slightly different hues clash. If you intend to display colors of the same hue together, you should pick them from the same group.

Each color chip is identified by a mnemonic (e.g. kYellow) and a number. The keywords, kRed, kBlue, kYellow, kPink, etc are defined in the header file Rtypes.h that is included in all ROOT other header files. It is better to use these keywords in user code instead of hardcoded color numbers, e.g.:

myObject.SetFillColor(kRed);
myObject.SetFillColor(kYellow-10);
myLine.SetLineColor(kMagenta+2);
{
cw = new TCanvas("cw","cw",0,0,400,400);
w->SetCanvas(cw);
w->Draw();
}

The complete list of predefined color names is the following:

kWhite = 0, kBlack = 1, kGray = 920, kRed = 632, kGreen = 416,
kBlue = 600, kYellow = 400, kMagenta = 616, kCyan = 432, kOrange = 800,
kSpring = 820, kTeal = 840, kAzure = 860, kViolet = 880, kPink = 900

Note the special role of color kWhite (color number 0). It is the default background color also. For instance in a PDF or PS files (as paper is usually white) it is simply not painted. To have a white color behaving like the other color the simplest is to define an other white color not attached to the color index 0:

TColor *color = new TColor(ci, 1., 1., 1.);

Bright and dark colors

The dark and bright color are used to give 3-D effects when drawing various boxes (see TWbox, TPave, TPaveText, TPaveLabel, etc).

  • The dark colors have an index = color_index+100
  • The bright colors have an index = color_index+150
  • Two static functions return the bright and dark color number corresponding to a color index. If the bright or dark color does not exist, they are created:
    Int_t dark = TColor::GetColorDark(color_index);
    Int_t bright = TColor::GetColorBright(color_index);

Grayscale view of of canvas with colors

One can toggle between a grayscale preview and the regular colored mode using TCanvas::SetGrayscale(). Note that in grayscale mode, access via RGB will return grayscale values according to ITU standards (and close to b&w printer gray-scales), while access via HLS returns de-saturated gray-scales. The image below shows the ROOT color wheel in grayscale mode.

{
cw = new TCanvas("cw","cw",0,0,400,400);
cw->GetCanvas()->SetGrayscale();
w->SetCanvas(cw);
w->Draw();
}

Color palettes

It is often very useful to represent a variable with a color map. The concept of "color palette" allows to do that. One color palette is active at any time. This "current palette" is set using:

This function has two parameters: the number of colors in the palette and an array of containing the indices of colors in the palette. The following small example demonstrates how to define and use the color palette:

{
TCanvas *c1 = new TCanvas("c1","c1",0,0,600,400);
TF2 *f1 = new TF2("f1","0.1+(1-(x-2)*(x-2))*(1-(y-2)*(y-2))",1,3,1,3);
Int_t palette[5];
palette[0] = 15;
palette[1] = 20;
palette[2] = 23;
palette[3] = 30;
palette[4] = 32;
gStyle->SetPalette(5,palette);
f1->Draw("colz");
return c1;
}

To define more a complex palette with a continuous gradient of color, one should use the static function TColor::CreateGradientColorTable(). The following example demonstrates how to proceed:

{
TCanvas *c2 = new TCanvas("c2","c2",0,0,600,400);
TF2 *f2 = new TF2("f2","0.1+(1-(x-2)*(x-2))*(1-(y-2)*(y-2))",1,3,1,3);
const Int_t Number = 3;
Double_t Red[Number] = { 1.00, 0.00, 0.00};
Double_t Green[Number] = { 0.00, 1.00, 0.00};
Double_t Blue[Number] = { 1.00, 0.00, 1.00};
Double_t Length[Number] = { 0.00, 0.50, 1.00 };
Int_t nb=50;
TColor::CreateGradientColorTable(Number,Length,Red,Green,Blue,nb);
f2->SetContour(nb);
f2->SetLineWidth(1);
f2->SetLineColor(kBlack);
f2->Draw("surf1z");
return c2;
}

The function TColor::CreateGradientColorTable() automatically calls gStyle->SetPalette(), so there is not need to add one.

After a call to TColor::CreateGradientColorTable() it is sometimes useful to store the newly create palette for further use. In particular, it is recommended to do if one wants to switch between several user define palettes. To store a palette in an array it is enough to do:

Int_t MyPalette[100];
Double_t Red[] = {0., 0.0, 1.0, 1.0, 1.0};
Double_t Green[] = {0., 0.0, 0.0, 1.0, 1.0};
Double_t Blue[] = {0., 1.0, 0.0, 0.0, 1.0};
Double_t Length[] = {0., .25, .50, .75, 1.0};
Int_t FI = TColor::CreateGradientColorTable(5, Length, Red, Green, Blue, 100);
for (int i=0;i<100;i++) MyPalette[i] = FI+i;

Later on to reuse the palette MyPalette it will be enough to do

gStyle->SetPalette(100, MyPalette);

As only one palette is active, one need to use TExec to be able to display plots using different palettes on the same pad. The tutorial multipalette.C illustrates this feature.

#include "TStyle.h"
#include "TColor.h"
#include "TF2.h"
#include "TExec.h"
#include "TCanvas.h"
void Pal1()
{
static Int_t colors[50];
static Bool_t initialized = kFALSE;
Double_t Red[3] = { 1.00, 0.00, 0.00};
Double_t Green[3] = { 0.00, 1.00, 0.00};
Double_t Blue[3] = { 1.00, 0.00, 1.00};
Double_t Length[3] = { 0.00, 0.50, 1.00 };
if(!initialized){
Int_t FI = TColor::CreateGradientColorTable(3,Length,Red,Green,Blue,50);
for (int i=0; i<50; i++) colors[i] = FI+i;
initialized = kTRUE;
return;
}
}
void Pal2()
{
static Int_t colors[50];
static Bool_t initialized = kFALSE;
Double_t Red[3] = { 1.00, 0.50, 0.00};
Double_t Green[3] = { 0.50, 0.00, 1.00};
Double_t Blue[3] = { 1.00, 0.00, 0.50};
Double_t Length[3] = { 0.00, 0.50, 1.00 };
if(!initialized){
Int_t FI = TColor::CreateGradientColorTable(3,Length,Red,Green,Blue,50);
for (int i=0; i<50; i++) colors[i] = FI+i;
initialized = kTRUE;
return;
}
}
void multipalette() {
TCanvas *c3 = new TCanvas("c3","C3",0,0,600,400);
c3->Divide(2,1);
TF2 *f3 = new TF2("f3","0.1+(1-(x-2)*(x-2))*(1-(y-2)*(y-2))",1,3,1,3);
f3->SetLineWidth(1);
f3->SetLineColor(kBlack);
c3->cd(1);
f3->Draw("surf1");
TExec *ex1 = new TExec("ex1","Pal1();");
ex1->Draw();
f3->Draw("surf1 same");
c3->cd(2);
f3->Draw("surf1");
TExec *ex2 = new TExec("ex2","Pal2();");
ex2->Draw();
f3->Draw("surf1 same");
}

High quality predefined palettes

Since
6.04: 62 high quality palettes are predefined with 255 colors each. Despite the disadvantages of the Rainbow color map, it was kept in the list of predefined color maps. These palettes can be accessed "by name" with gStyle->SetPalette(num). num can be taken within the following enum:

Palette inversion

Once a palette is defined, it is possible to invert the color order thanks to the method TColor::InvertPalette. The top of the palette becomes the bottom and vice versa.

{
auto c = new TCanvas("c","c",0,0,600,400);
TF2 *f2 = new TF2("f2","0.1+(1-(x-2)*(x-2))*(1-(y-2)*(y-2))",0.999,3.002,0.999,3.002);
f2->Draw("surf2Z"); f2->SetTitle("kCherry inverted");
}

Color transparency

To make a graphics object transparent it is enough to set its color to a transparent one. The color transparency is defined via its alpha component. The alpha value varies from 0. (fully transparent) to 1. (fully opaque). To set the alpha value of an existing color it is enough to do:

TColor *col26 = gROOT->GetColor(26);
col26->SetAlpha(0.01);

A new color can be created transparent the following way:

Int_t ci = 1756;
TColor *color = new TColor(ci, 0.1, 0.2, 0.3, "", 0.5); // alpha = 0.5

An example of transparency usage with parallel coordinates can be found in parallelcoordtrans.C.

To ease the creation of a transparent color the static method GetColorTransparent(Int_t color, Float_t a) is provided. In the following example the trans_red color index point to a red color 30% transparent. The alpha value of the color index kRed is not modified.

Int_t trans_red = GetColorTransparent(kRed, 0.3);

This function is also used in the methods SetFillColorAlpha(), SetLineColorAlpha(), SetMarkerColorAlpha() and SetTextColorAlpha(). In the following example the fill color of the histogram histo is set to blue with a transparency of 35%. The color kBlue itself remains fully opaque.

histo->SetFillColorAlpha(kBlue, 0.35);

The transparency is available on all platforms when the flag OpenGL.CanvasPreferGL is set to 1 in $ROOTSYS/etc/system.rootrc, or on Mac with the Cocoa backend. On the file output it is visible with PDF, PNG, Gif, JPEG, SVG, TeX ... but not PostScript. The following macro gives an example of transparency usage:

void transparency()
{
auto c1 = new TCanvas("c1", "c1",224,330,700,527);
c1->Range(-0.125,-0.125,1.125,1.125);
auto tex = new TLatex(0.06303724,0.0194223,"This text is opaque and this line is transparent");
tex->SetLineWidth(2);
tex->Draw();
auto arrow = new TArrow(0.5555158,0.07171314,0.8939828,0.6195219,0.05,"|>");
arrow->SetLineWidth(4);
arrow->SetAngle(30);
arrow->Draw();
// Draw a transparent graph.
Double_t x[10] = {
0.5232808, 0.8724928, 0.9280086, 0.7059456, 0.7399714,
0.4659742, 0.8241404, 0.4838825, 0.7936963, 0.743553};
Double_t y[10] = {
0.7290837, 0.9631474, 0.4775896, 0.6494024, 0.3555777,
0.622012, 0.7938247, 0.9482072, 0.3904382, 0.2410359};
auto graph = new TGraph(10,x,y);
graph->SetLineColorAlpha(46, 0.1);
graph->SetLineWidth(7);
graph->Draw("l");
// Draw an ellipse with opaque colors.
auto ellipse = new TEllipse(0.1740688,0.8352632,0.1518625,0.1010526,0,360,0);
ellipse->SetFillColor(30);
ellipse->SetLineColor(51);
ellipse->SetLineWidth(3);
ellipse->Draw();
// Draw an ellipse with transparent colors, above the previous one.
ellipse = new TEllipse(0.2985315,0.7092105,0.1566977,0.1868421,0,360,0);
ellipse->SetFillColorAlpha(9, 0.571);
ellipse->SetLineColorAlpha(8, 0.464);
ellipse->SetLineWidth(3);
ellipse->Draw();
// Draw a transparent blue text.
tex = new TLatex(0.04871059,0.1837649,"This text is transparent");
tex->SetTextColorAlpha(9, 0.476);
tex->SetTextSize(0.125);
tex->SetTextAngle(26.0);
tex->Draw();
// Draw two transparent markers
auto marker = new TMarker(0.03080229,0.998008,20);
marker->SetMarkerColorAlpha(2, .3);
marker->SetMarkerStyle(20);
marker->SetMarkerSize(1.7);
marker->Draw();
marker = new TMarker(0.1239255,0.8635458,20);
marker->SetMarkerColorAlpha(2, .2);
marker->SetMarkerStyle(20);
marker->SetMarkerSize(1.7);
marker->Draw();
// Draw an opaque marker
marker = new TMarker(0.3047994,0.6344622,20);
marker->SetMarkerColor(2);
marker->SetMarkerStyle(20);
marker->SetMarkerSize(1.7);
marker->Draw();
}

Definition at line 19 of file TColor.h.

Public Member Functions

 TColor ()
 Default constructor. More...
 
 TColor (const TColor &color)
 Color copy constructor. More...
 
 TColor (Float_t r, Float_t g, Float_t b, Float_t a=1)
 Fast TColor constructor. More...
 
 TColor (Int_t color, Float_t r, Float_t g, Float_t b, const char *name="", Float_t a=1)
 Normal color constructor. More...
 
virtual ~TColor ()
 Color destructor. More...
 
const char * AsHexString () const
 Return color as hexadecimal string. More...
 
void Copy (TObject &color) const
 Copy this color to obj. More...
 
Float_t GetAlpha () const
 
Float_t GetBlue () const
 
virtual Float_t GetGrayscale () const
 
Float_t GetGreen () const
 
virtual void GetHLS (Float_t &h, Float_t &l, Float_t &s) const
 
Float_t GetHue () const
 
Float_t GetLight () const
 
Int_t GetNumber () const
 
ULong_t GetPixel () const
 Return pixel value corresponding to this color. More...
 
Float_t GetRed () const
 
virtual void GetRGB (Float_t &r, Float_t &g, Float_t &b) const
 
Float_t GetSaturation () const
 
virtual void ls (Option_t *option="") const
 List this color with its attributes. More...
 
TColoroperator= (const TColor &color)
 
virtual void Print (Option_t *option="") const
 Dump this color with its attributes. More...
 
virtual void SetAlpha (Float_t a)
 
virtual void SetRGB (Float_t r, Float_t g, Float_t b)
 Initialize this color and its associated colors. More...
 
- Public Member Functions inherited from TNamed
 TNamed ()
 
 TNamed (const char *name, const char *title)
 
 TNamed (const TNamed &named)
 TNamed copy ctor. More...
 
 TNamed (const TString &name, const TString &title)
 
virtual ~TNamed ()
 TNamed destructor. More...
 
virtual void Clear (Option_t *option="")
 Set name and title to empty strings (""). More...
 
virtual TObjectClone (const char *newname="") const
 Make a clone of an object using the Streamer facility. More...
 
virtual Int_t Compare (const TObject *obj) const
 Compare two TNamed objects. More...
 
virtual void FillBuffer (char *&buffer)
 Encode TNamed into output buffer. More...
 
virtual const char * GetName () const
 Returns name of object. More...
 
virtual const char * GetTitle () const
 Returns title of object. More...
 
virtual ULong_t Hash () const
 Return hash value for this object. More...
 
virtual Bool_t IsSortable () const
 
TNamedoperator= (const TNamed &rhs)
 TNamed assignment operator. More...
 
virtual void SetName (const char *name)
 Set the name of the TNamed. More...
 
virtual void SetNameTitle (const char *name, const char *title)
 Set all the TNamed parameters (name and title). More...
 
virtual void SetTitle (const char *title="")
 Set the title of the TNamed. More...
 
virtual Int_t Sizeof () const
 Return size of the TNamed part of the TObject. More...
 
- Public Member Functions inherited from TObject
 TObject ()
 TObject constructor. More...
 
 TObject (const TObject &object)
 TObject copy ctor. More...
 
virtual ~TObject ()
 TObject destructor. More...
 
void AbstractMethod (const char *method) const
 Use this method to implement an "abstract" method that you don't want to leave purely abstract. More...
 
virtual void AppendPad (Option_t *option="")
 Append graphics object to current pad. More...
 
virtual void Browse (TBrowser *b)
 Browse object. May be overridden for another default action. More...
 
ULong_t CheckedHash ()
 Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object. More...
 
virtual const char * ClassName () const
 Returns name of class to which the object belongs. More...
 
virtual void Delete (Option_t *option="")
 Delete this object. More...
 
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
 Computes distance from point (px,py) to the object. More...
 
virtual void Draw (Option_t *option="")
 Default Draw method for all objects. More...
 
virtual void DrawClass () const
 Draw class inheritance tree of the class to which this object belongs. More...
 
virtual TObjectDrawClone (Option_t *option="") const
 Draw a clone of this object in the current selected pad for instance with: gROOT->SetSelectedPad(gPad). More...
 
virtual void Dump () const
 Dump contents of object on stdout. More...
 
virtual void Error (const char *method, const char *msgfmt,...) const
 Issue error message. More...
 
virtual void Execute (const char *method, const char *params, Int_t *error=0)
 Execute method on this object with the given parameter string, e.g. More...
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=0)
 Execute method on this object with parameters stored in the TObjArray. More...
 
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
 Execute action corresponding to an event at (px,py). More...
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 Issue fatal error message. More...
 
virtual TObjectFindObject (const char *name) const
 Must be redefined in derived classes. More...
 
virtual TObjectFindObject (const TObject *obj) const
 Must be redefined in derived classes. More...
 
virtual Option_tGetDrawOption () const
 Get option used by the graphics system to draw this object. More...
 
virtual const char * GetIconName () const
 Returns mime type name of object. More...
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py). More...
 
virtual Option_tGetOption () const
 
virtual UInt_t GetUniqueID () const
 Return the unique object id. More...
 
virtual Bool_t HandleTimer (TTimer *timer)
 Execute action in response of a timer timing out. More...
 
Bool_t HasInconsistentHash () const
 Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e. More...
 
virtual void Info (const char *method, const char *msgfmt,...) const
 Issue info message. More...
 
virtual Bool_t InheritsFrom (const char *classname) const
 Returns kTRUE if object inherits from class "classname". More...
 
virtual Bool_t InheritsFrom (const TClass *cl) const
 Returns kTRUE if object inherits from TClass cl. More...
 
virtual void Inspect () const
 Dump contents of this object in a graphics canvas. More...
 
void InvertBit (UInt_t f)
 
virtual Bool_t IsEqual (const TObject *obj) const
 Default equal comparison (objects are equal if they have the same address in memory). More...
 
virtual Bool_t IsFolder () const
 Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). More...
 
R__ALWAYS_INLINE Bool_t IsOnHeap () const
 
R__ALWAYS_INLINE Bool_t IsZombie () const
 
void MayNotUse (const char *method) const
 Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary). More...
 
virtual Bool_t Notify ()
 This method must be overridden to handle object notification. More...
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 Use this method to declare a method obsolete. More...
 
void operator delete (void *ptr)
 Operator delete. More...
 
void operator delete[] (void *ptr)
 Operator delete []. More...
 
voidoperator new (size_t sz)
 
voidoperator new (size_t sz, void *vp)
 
voidoperator new[] (size_t sz)
 
voidoperator new[] (size_t sz, void *vp)
 
TObjectoperator= (const TObject &rhs)
 TObject assignment operator. More...
 
virtual void Paint (Option_t *option="")
 This method must be overridden if a class wants to paint itself. More...
 
virtual void Pop ()
 Pop on object drawn in a pad to the top of the display list. More...
 
virtual Int_t Read (const char *name)
 Read contents of object with specified name from the current directory. More...
 
virtual void RecursiveRemove (TObject *obj)
 Recursively remove this object from a list. More...
 
void ResetBit (UInt_t f)
 
virtual void SaveAs (const char *filename="", Option_t *option="") const
 Save this object in the file specified by filename. More...
 
virtual void SavePrimitive (std::ostream &out, Option_t *option="")
 Save a primitive as a C++ statement(s) on output stream "out". More...
 
void SetBit (UInt_t f)
 
void SetBit (UInt_t f, Bool_t set)
 Set or unset the user status bits as specified in f. More...
 
virtual void SetDrawOption (Option_t *option="")
 Set drawing option for object. More...
 
virtual void SetUniqueID (UInt_t uid)
 Set the unique object id. More...
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 Issue system error message. More...
 
R__ALWAYS_INLINE Bool_t TestBit (UInt_t f) const
 
Int_t TestBits (UInt_t f) const
 
virtual void UseCurrentStyle ()
 Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked. More...
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 Issue warning message. More...
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0)
 Write this object to the current directory. More...
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0) const
 Write this object to the current directory. More...
 

Static Public Member Functions

static void CreateColorsCircle (Int_t offset, const char *name, UChar_t *rgb)
 Create the "circle" colors in the color wheel. More...
 
static void CreateColorsGray ()
 Create the Gray scale colors in the Color Wheel. More...
 
static void CreateColorsRectangle (Int_t offset, const char *name, UChar_t *rgb)
 Create the "rectangular" colors in the color wheel. More...
 
static void CreateColorWheel ()
 Static function steering the creation of all colors in the color wheel. More...
 
static Int_t CreateGradientColorTable (UInt_t Number, Double_t *Stops, Double_t *Red, Double_t *Green, Double_t *Blue, UInt_t NColors, Float_t alpha=1.)
 Static function creating a color table with several connected linear gradients. More...
 
static Bool_t DefinedColors ()
 Static function returning kTRUE if some new colors have been defined after initialisation or since the last call to this method. More...
 
static Int_t GetColor (const char *hexcolor)
 Static method returning color number for color specified by hex color string of form: "#rrggbb", where rr, gg and bb are in hex between [0,FF], e.g. More...
 
static Int_t GetColor (Float_t r, Float_t g, Float_t b)
 Static method returning color number for color specified by r, g and b. More...
 
static Int_t GetColor (Int_t r, Int_t g, Int_t b)
 Static method returning color number for color specified by r, g and b. More...
 
static Int_t GetColor (ULong_t pixel)
 Static method returning color number for color specified by system dependent pixel value. More...
 
static Int_t GetColorBright (Int_t color)
 Static function: Returns the bright color number corresponding to n If the TColor object does not exist, it is created. More...
 
static Int_t GetColorDark (Int_t color)
 Static function: Returns the dark color number corresponding to n If the TColor object does not exist, it is created. More...
 
static Int_t GetColorPalette (Int_t i)
 Static function returning the color number i in current palette. More...
 
static Int_t GetColorTransparent (Int_t color, Float_t a)
 Static function: Returns the transparent color number corresponding to n. More...
 
static Int_t GetFreeColorIndex ()
 Static function: Returns a free color index which can be used to define a user custom color. More...
 
static Int_t GetNumberOfColors ()
 Static function returning number of colors in the color palette. More...
 
static const TArrayIGetPalette ()
 Static function returning the current active palette. More...
 
static void HLS2RGB (Float_t h, Float_t l, Float_t s, Float_t &r, Float_t &g, Float_t &b)
 Static method to compute RGB from HLS. More...
 
static void HLS2RGB (Int_t h, Int_t l, Int_t s, Int_t &r, Int_t &g, Int_t &b)
 Static method to compute RGB from HLS. More...
 
static void HLStoRGB (Float_t h, Float_t l, Float_t s, Float_t &r, Float_t &g, Float_t &b)
 
static void HSV2RGB (Float_t h, Float_t s, Float_t v, Float_t &r, Float_t &g, Float_t &b)
 Static method to compute RGB from HSV: More...
 
static void InitializeColors ()
 Initialize colors used by the TCanvas based graphics (via TColor objects). More...
 
static void InvertPalette ()
 Invert the current color palette. More...
 
static Bool_t IsGrayscale ()
 Return whether all colors return grayscale values. More...
 
static ULong_t Number2Pixel (Int_t ci)
 Static method that given a color index number, returns the corresponding pixel value. More...
 
static void Pixel2RGB (ULong_t pixel, Float_t &r, Float_t &g, Float_t &b)
 Convert machine dependent pixel value (obtained via RGB2Pixel or via Number2Pixel() or via TColor::GetPixel()) to r,g,b triplet. More...
 
static void Pixel2RGB (ULong_t pixel, Int_t &r, Int_t &g, Int_t &b)
 Convert machine dependent pixel value (obtained via RGB2Pixel or via Number2Pixel() or via TColor::GetPixel()) to r,g,b triplet. More...
 
static const char * PixelAsHexString (ULong_t pixel)
 Convert machine dependent pixel value (obtained via RGB2Pixel or via Number2Pixel() or via TColor::GetPixel()) to a hexadecimal string. More...
 
static void RGB2HLS (Float_t r, Float_t g, Float_t b, Float_t &h, Float_t &l, Float_t &s)
 Static method to compute HLS from RGB. More...
 
static void RGB2HLS (Int_t r, Int_t g, Int_t b, Int_t &h, Int_t &l, Int_t &s)
 Static method to compute HLS from RGB. More...
 
static void RGB2HSV (Float_t r, Float_t g, Float_t b, Float_t &h, Float_t &s, Float_t &v)
 Static method to compute HSV from RGB. More...
 
static ULong_t RGB2Pixel (Float_t r, Float_t g, Float_t b)
 Convert r,g,b to graphics system dependent pixel value. More...
 
static ULong_t RGB2Pixel (Int_t r, Int_t g, Int_t b)
 Convert r,g,b to graphics system dependent pixel value. More...
 
static void RGBtoHLS (Float_t r, Float_t g, Float_t b, Float_t &h, Float_t &l, Float_t &s)
 
static void SaveColor (std::ostream &out, Int_t ci)
 Save a color with index > 228 as a C++ statement(s) on output stream out. More...
 
static void SetColorThreshold (Float_t t)
 This method specifies the color threshold used by GetColor to retrieve a color. More...
 
static void SetGrayscale (Bool_t set=kTRUE)
 Set whether all colors should return grayscale values. More...
 
static void SetPalette (Int_t ncolors, Int_t *colors, Float_t alpha=1.)
 Static function. More...
 
- Static Public Member Functions inherited from TObject
static Long_t GetDtorOnly ()
 Return destructor only flag. More...
 
static Bool_t GetObjectStat ()
 Get status of object stat flag. More...
 
static void SetDtorOnly (void *obj)
 Set destructor only flag. More...
 
static void SetObjectStat (Bool_t stat)
 Turn on/off tracking of objects in the TObjectTable. More...
 

Protected Attributes

Int_t fNumber
 Color number identifier. More...
 
- Protected Attributes inherited from TNamed
TString fName
 
TString fTitle
 

Private Member Functions

void Allocate ()
 Make this color known to the graphics system. More...
 

Static Private Member Functions

static Float_t HLStoRGB1 (Float_t rn1, Float_t rn2, Float_t huei)
 Static method. Auxiliary to HLS2RGB(). More...
 

Private Attributes

Float_t fAlpha
 Alpha (transparency) More...
 
Float_t fBlue
 Fraction of Blue. More...
 
Float_t fGreen
 Fraction of Green. More...
 
Float_t fHue
 Hue. More...
 
Float_t fLight
 Light. More...
 
Float_t fRed
 Fraction of Red. More...
 
Float_t fSaturation
 Saturation. More...
 

Additional Inherited Members

- Public Types inherited from TObject
enum  {
  kIsOnHeap = 0x01000000, kNotDeleted = 0x02000000, kZombie = 0x04000000, kInconsistent = 0x08000000,
  kBitMask = 0x00ffffff
}
 
enum  { kSingleKey = BIT(0), kOverwrite = BIT(1), kWriteDelete = BIT(2) }
 
enum  EDeprecatedStatusBits { kObjInCanvas = BIT(3) }
 
enum  EStatusBits {
  kCanDelete = BIT(0), kMustCleanup = BIT(3), kIsReferenced = BIT(4), kHasUUID = BIT(5),
  kCannotPick = BIT(6), kNoContextMenu = BIT(8), kInvalidObject = BIT(13)
}
 
- Protected Member Functions inherited from TObject
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 Interface to ErrorHandler (protected). More...
 
void MakeZombie ()
 

#include <TColor.h>

Inheritance diagram for TColor:
[legend]

Constructor & Destructor Documentation

◆ TColor() [1/4]

TColor::TColor ( )

Default constructor.

Definition at line 983 of file TColor.cxx.

◆ TColor() [2/4]

TColor::TColor ( Int_t  color,
Float_t  r,
Float_t  g,
Float_t  b,
const char *  name = "",
Float_t  a = 1 
)

Normal color constructor.

Initialize a color structure. Compute the RGB and HLS color components.

Definition at line 994 of file TColor.cxx.

◆ TColor() [3/4]

TColor::TColor ( Float_t  r,
Float_t  g,
Float_t  b,
Float_t  a = 1 
)

Fast TColor constructor.

It creates a color with an index just above the current highest one. It does not name the color. This is useful to create palettes.

Definition at line 1039 of file TColor.cxx.

◆ TColor() [4/4]

TColor::TColor ( const TColor color)

Color copy constructor.

Definition at line 1067 of file TColor.cxx.

◆ ~TColor()

TColor::~TColor ( )
virtual

Color destructor.

Definition at line 1058 of file TColor.cxx.

Member Function Documentation

◆ Allocate()

void TColor::Allocate ( )
private

Make this color known to the graphics system.

Definition at line 1749 of file TColor.cxx.

◆ AsHexString()

const char * TColor::AsHexString ( ) const

Return color as hexadecimal string.

This string can be directly passed to, for example, TGClient::GetColorByName(). String will be reused so copy immediately if needed.

Definition at line 1209 of file TColor.cxx.

◆ Copy()

void TColor::Copy ( TObject color) const
virtual

Copy this color to obj.

Reimplemented from TNamed.

Definition at line 1230 of file TColor.cxx.

◆ CreateColorsCircle()

void TColor::CreateColorsCircle ( Int_t  offset,
const char *  name,
UChar_t rgb 
)
static

Create the "circle" colors in the color wheel.

Definition at line 1262 of file TColor.cxx.

◆ CreateColorsGray()

void TColor::CreateColorsGray ( )
static

Create the Gray scale colors in the Color Wheel.

Definition at line 1246 of file TColor.cxx.

◆ CreateColorsRectangle()

void TColor::CreateColorsRectangle ( Int_t  offset,
const char *  name,
UChar_t rgb 
)
static

Create the "rectangular" colors in the color wheel.

Definition at line 1282 of file TColor.cxx.

◆ CreateColorWheel()

void TColor::CreateColorWheel ( )
static

Static function steering the creation of all colors in the color wheel.

Definition at line 1302 of file TColor.cxx.

◆ CreateGradientColorTable()

Int_t TColor::CreateGradientColorTable ( UInt_t  Number,
Double_t Stops,
Double_t Red,
Double_t Green,
Double_t Blue,
UInt_t  NColors,
Float_t  alpha = 1. 
)
static

Static function creating a color table with several connected linear gradients.

  • Number: The number of end point colors that will form the gradients. Must be at least 2.
  • Stops: Where in the whole table the end point colors should lie. Each entry must be on [0, 1], each entry must be greater than the previous entry.
  • Red, Green, Blue: The end point color values. Each entry must be on [0, 1]
  • NColors: Total number of colors in the table. Must be at least 1.

Returns a positive value on success and -1 on error.

The table is constructed by tracing lines between the given points in RGB space. Each color value may have a value between 0 and 1. The difference between consecutive "Stops" values gives the fraction of space in the whole table that should be used for the interval between the corresponding color values.

Normally the first element of Stops should be 0 and the last should be 1. If this is not true, fewer than NColors will be used in proportion with the total interval between the first and last elements of Stops.

This definition is similar to the povray-definition of gradient color tables.

For instance:

UInt_t Number = 3;
Double_t Red[3] = { 0.0, 1.0, 1.0 };
Double_t Green[3] = { 0.0, 0.0, 1.0 };
Double_t Blue[3] = { 1.0, 0.0, 1.0 };
Double_t Stops[3] = { 0.0, 0.4, 1.0 };

This defines a table in which there are three color end points: RGB = {0, 0, 1}, {1, 0, 0}, and {1, 1, 1} = blue, red, white The first 40% of the table is used to go linearly from blue to red. The remaining 60% of the table is used to go linearly from red to white.

If you define a very short interval such that less than one color fits in it, no colors at all will be allocated. If this occurs for all intervals, ROOT will revert to the default palette.

Original code by Andreas Zoglauer (zog@m.nosp@m.pe.m.nosp@m.pg.de)

Definition at line 2225 of file TColor.cxx.

◆ DefinedColors()

Bool_t TColor::DefinedColors ( )
static

Static function returning kTRUE if some new colors have been defined after initialisation or since the last call to this method.

This allows to avoid the colors and palette streaming in TCanvas::Streamer if not needed.

Definition at line 1420 of file TColor.cxx.

◆ GetAlpha()

Float_t TColor::GetAlpha ( ) const
inline

Definition at line 63 of file TColor.h.

◆ GetBlue()

Float_t TColor::GetBlue ( ) const
inline

Definition at line 59 of file TColor.h.

◆ GetColor() [1/4]

Int_t TColor::GetColor ( const char *  hexcolor)
static

Static method returning color number for color specified by hex color string of form: "#rrggbb", where rr, gg and bb are in hex between [0,FF], e.g.

"#c0c0c0".

The color retrieval is done using a threshold defined by SetColorThreshold.

If specified color does not exist it will be created with as name "#rrggbb" with rr, gg and bb in hex between [0,FF].

Definition at line 1766 of file TColor.cxx.

◆ GetColor() [2/4]

Int_t TColor::GetColor ( Float_t  r,
Float_t  g,
Float_t  b 
)
static

Static method returning color number for color specified by r, g and b.

The r,g,b should be in the range [0,1].

The color retrieval is done using a threshold defined by SetColorThreshold.

If specified color does not exist it will be created with as name "#rrggbb" with rr, gg and bb in hex between [0,FF].

Definition at line 1787 of file TColor.cxx.

◆ GetColor() [3/4]

Int_t TColor::GetColor ( Int_t  r,
Int_t  g,
Int_t  b 
)
static

Static method returning color number for color specified by r, g and b.

The r,g,b should be in the range [0,255]. If the specified color does not exist it will be created with as name "#rrggbb" with rr, gg and bb in hex between [0,FF].

The color retrieval is done using a threshold defined by SetColorThreshold.

Definition at line 1853 of file TColor.cxx.

◆ GetColor() [4/4]

Int_t TColor::GetColor ( ULong_t  pixel)
static

Static method returning color number for color specified by system dependent pixel value.

Pixel values can be obtained, e.g., from the GUI color picker.

The color retrieval is done using a threshold defined by SetColorThreshold.

Definition at line 1805 of file TColor.cxx.

◆ GetColorBright()

Int_t TColor::GetColorBright ( Int_t  n)
static

Static function: Returns the bright color number corresponding to n If the TColor object does not exist, it is created.

The convention is that the bright color nb = n+150

Definition at line 1913 of file TColor.cxx.

◆ GetColorDark()

Int_t TColor::GetColorDark ( Int_t  n)
static

Static function: Returns the dark color number corresponding to n If the TColor object does not exist, it is created.

The convention is that the dark color nd = n+100

Definition at line 1945 of file TColor.cxx.

◆ GetColorPalette()

Int_t TColor::GetColorPalette ( Int_t  i)
static

Static function returning the color number i in current palette.

Definition at line 1390 of file TColor.cxx.

◆ GetColorTransparent()

Int_t TColor::GetColorTransparent ( Int_t  n,
Float_t  a 
)
static

Static function: Returns the transparent color number corresponding to n.

The transparency level is given by the alpha value a.

Definition at line 1976 of file TColor.cxx.

◆ GetFreeColorIndex()

Int_t TColor::GetFreeColorIndex ( )
static

Static function: Returns a free color index which can be used to define a user custom color.

TColor *color = new TColor(ci, 0.1, 0.2, 0.3);

Definition at line 2002 of file TColor.cxx.

◆ GetGrayscale()

virtual Float_t TColor::GetGrayscale ( ) const
inlinevirtual

Definition at line 64 of file TColor.h.

◆ GetGreen()

Float_t TColor::GetGreen ( ) const
inline

Definition at line 58 of file TColor.h.

◆ GetHLS()

virtual void TColor::GetHLS ( Float_t h,
Float_t l,
Float_t s 
) const
inlinevirtual

Definition at line 53 of file TColor.h.

◆ GetHue()

Float_t TColor::GetHue ( ) const
inline

Definition at line 60 of file TColor.h.

◆ GetLight()

Float_t TColor::GetLight ( ) const
inline

Definition at line 61 of file TColor.h.

◆ GetNumber()

Int_t TColor::GetNumber ( ) const
inline

Definition at line 55 of file TColor.h.

◆ GetNumberOfColors()

Int_t TColor::GetNumberOfColors ( )
static

Static function returning number of colors in the color palette.

Definition at line 1410 of file TColor.cxx.

◆ GetPalette()

const TArrayI & TColor::GetPalette ( )
static

Static function returning the current active palette.

Definition at line 1402 of file TColor.cxx.

◆ GetPixel()

ULong_t TColor::GetPixel ( ) const

Return pixel value corresponding to this color.

This pixel value can be used in the GUI classes. This call does not work in batch mode since it needs to communicate with the graphics system.

Definition at line 1434 of file TColor.cxx.

◆ GetRed()

Float_t TColor::GetRed ( ) const
inline

Definition at line 57 of file TColor.h.

◆ GetRGB()

virtual void TColor::GetRGB ( Float_t r,
Float_t g,
Float_t b 
) const
inlinevirtual

Definition at line 51 of file TColor.h.

◆ GetSaturation()

Float_t TColor::GetSaturation ( ) const
inline

Definition at line 62 of file TColor.h.

◆ HLS2RGB() [1/2]

void TColor::HLS2RGB ( Float_t  hue,
Float_t  light,
Float_t  satur,
Float_t r,
Float_t g,
Float_t b 
)
static

Static method to compute RGB from HLS.

The l and s are between [0,1] and h is between [0,360]. The returned r,g,b triplet is between [0,1].

Definition at line 1451 of file TColor.cxx.

◆ HLS2RGB() [2/2]

void TColor::HLS2RGB ( Int_t  h,
Int_t  l,
Int_t  s,
Int_t r,
Int_t g,
Int_t b 
)
static

Static method to compute RGB from HLS.

The h,l,s are between [0,255]. The returned r,g,b triplet is between [0,255].

Definition at line 1491 of file TColor.cxx.

◆ HLStoRGB()

static void TColor::HLStoRGB ( Float_t  h,
Float_t  l,
Float_t  s,
Float_t r,
Float_t g,
Float_t b 
)
inlinestatic

Definition at line 73 of file TColor.h.

◆ HLStoRGB1()

Float_t TColor::HLStoRGB1 ( Float_t  rn1,
Float_t  rn2,
Float_t  huei 
)
staticprivate

Static method. Auxiliary to HLS2RGB().

Definition at line 1476 of file TColor.cxx.

◆ HSV2RGB()

void TColor::HSV2RGB ( Float_t  hue,
Float_t  satur,
Float_t  value,
Float_t r,
Float_t g,
Float_t b 
)
static

Static method to compute RGB from HSV:

  • The hue value runs from 0 to 360.
  • The saturation is the degree of strength or purity and is from 0 to 1. Purity is how much white is added to the color, so S=1 makes the purest color (no white).
  • Brightness value also ranges from 0 to 1, where 0 is the black.

The returned r,g,b triplet is between [0,1].

Definition at line 1517 of file TColor.cxx.

◆ InitializeColors()

void TColor::InitializeColors ( )
static

Initialize colors used by the TCanvas based graphics (via TColor objects).

This method should be called before the ApplicationImp is created (which initializes the GUI colors).

Definition at line 1083 of file TColor.cxx.

◆ InvertPalette()

void TColor::InvertPalette ( )
static

Invert the current color palette.

The top of the palette becomes the bottom and vice versa.

Definition at line 3133 of file TColor.cxx.

◆ IsGrayscale()

Bool_t TColor::IsGrayscale ( )
static

Return whether all colors return grayscale values.

Definition at line 2156 of file TColor.cxx.

◆ ls()

void TColor::ls ( Option_t option = "") const
virtual

List this color with its attributes.

Reimplemented from TNamed.

Definition at line 1573 of file TColor.cxx.

◆ Number2Pixel()

ULong_t TColor::Number2Pixel ( Int_t  ci)
static

Static method that given a color index number, returns the corresponding pixel value.

This pixel value can be used in the GUI classes. This call does not work in batch mode since it needs to communicate with the graphics system.

Definition at line 2013 of file TColor.cxx.

◆ operator=()

TColor & TColor::operator= ( const TColor color)

Definition at line 1072 of file TColor.cxx.

◆ Pixel2RGB() [1/2]

void TColor::Pixel2RGB ( ULong_t  pixel,
Float_t r,
Float_t g,
Float_t b 
)
static

Convert machine dependent pixel value (obtained via RGB2Pixel or via Number2Pixel() or via TColor::GetPixel()) to r,g,b triplet.

The r,g,b triplet will be [0,1].

Definition at line 2074 of file TColor.cxx.

◆ Pixel2RGB() [2/2]

void TColor::Pixel2RGB ( ULong_t  pixel,
Int_t r,
Int_t g,
Int_t b 
)
static

Convert machine dependent pixel value (obtained via RGB2Pixel or via Number2Pixel() or via TColor::GetPixel()) to r,g,b triplet.

The r,g,b triplet will be [0,255].

Definition at line 2089 of file TColor.cxx.

◆ PixelAsHexString()

const char * TColor::PixelAsHexString ( ULong_t  pixel)
static

Convert machine dependent pixel value (obtained via RGB2Pixel or via Number2Pixel() or via TColor::GetPixel()) to a hexadecimal string.

This string can be directly passed to, for example, TGClient::GetColorByName(). String will be reused so copy immediately if needed.

Definition at line 2106 of file TColor.cxx.

◆ Print()

void TColor::Print ( Option_t option = "") const
virtual

Dump this color with its attributes.

Reimplemented from TNamed.

Definition at line 1582 of file TColor.cxx.

◆ RGB2HLS() [1/2]

void TColor::RGB2HLS ( Float_t  rr,
Float_t  gg,
Float_t  bb,
Float_t hue,
Float_t light,
Float_t satur 
)
static

Static method to compute HLS from RGB.

The r,g,b triplet is between [0,1], hue is between [0,360], light and satur are [0,1].

Definition at line 1591 of file TColor.cxx.

◆ RGB2HLS() [2/2]

void TColor::RGB2HLS ( Int_t  r,
Int_t  g,
Int_t  b,
Int_t h,
Int_t l,
Int_t s 
)
static

Static method to compute HLS from RGB.

The r,g,b triplet is between [0,255], hue, light and satur are between [0,255].

Definition at line 1684 of file TColor.cxx.

◆ RGB2HSV()

void TColor::RGB2HSV ( Float_t  r,
Float_t  g,
Float_t  b,
Float_t hue,
Float_t satur,
Float_t value 
)
static

Static method to compute HSV from RGB.

  • The input values:
    • r,g,b triplet is between [0,1].
  • The returned values:
    • The hue value runs from 0 to 360.
    • The saturation is the degree of strength or purity and is from 0 to 1. Purity is how much white is added to the color, so S=1 makes the purest color (no white).
    • Brightness value also ranges from 0 to 1, where 0 is the black.

Definition at line 1649 of file TColor.cxx.

◆ RGB2Pixel() [1/2]

ULong_t TColor::RGB2Pixel ( Float_t  r,
Float_t  g,
Float_t  b 
)
static

Convert r,g,b to graphics system dependent pixel value.

The r,g,b triplet must be [0,1].

Definition at line 2029 of file TColor.cxx.

◆ RGB2Pixel() [2/2]

ULong_t TColor::RGB2Pixel ( Int_t  r,
Int_t  g,
Int_t  b 
)
static

Convert r,g,b to graphics system dependent pixel value.

The r,g,b triplet must be [0,255].

Definition at line 2051 of file TColor.cxx.

◆ RGBtoHLS()

static void TColor::RGBtoHLS ( Float_t  r,
Float_t  g,
Float_t  b,
Float_t h,
Float_t l,
Float_t s 
)
inlinestatic

Definition at line 78 of file TColor.h.

◆ SaveColor()

void TColor::SaveColor ( std::ostream &  out,
Int_t  ci 
)
static

Save a color with index > 228 as a C++ statement(s) on output stream out.

Definition at line 2118 of file TColor.cxx.

◆ SetAlpha()

virtual void TColor::SetAlpha ( Float_t  a)
inlinevirtual

Definition at line 67 of file TColor.h.

◆ SetColorThreshold()

void TColor::SetColorThreshold ( Float_t  t)
static

This method specifies the color threshold used by GetColor to retrieve a color.

Parameters
[in]tColor threshold. By default is equal to 1./31. or 1./255. depending on the number of available color planes.

When GetColor is called, it scans the defined colors and compare them to the requested color. If the Red Green and Blue values passed to GetColor are Rr Gr Br and Rd Gd Bd the values of a defined color. These two colors are considered equal if (abs(Rr-Rd) < t & abs(Br-Bd) < t & abs(Br-Bd) < t). If this test passes, the color defined by Rd Gd Bd is returned by GetColor.

To make sure GetColor will return a color having exactly the requested R G B values it is enough to specify a nul :

To reset the color threshold to its default value it is enough to do:

Definition at line 1838 of file TColor.cxx.

◆ SetGrayscale()

void TColor::SetGrayscale ( Bool_t  set = kTRUE)
static

Set whether all colors should return grayscale values.

Definition at line 2164 of file TColor.cxx.

◆ SetPalette()

void TColor::SetPalette ( Int_t  ncolors,
Int_t colors,
Float_t  alpha = 1. 
)
static

Static function.

The color palette is used by the histogram classes (see TH1::Draw options). For example TH1::Draw("col") draws a 2-D histogram with cells represented by a box filled with a color CI function of the cell content. if the cell content is N, the color CI used will be the color number in colors[N],etc. If the maximum cell content is > ncolors, all cell contents are scaled to ncolors.

if ncolors <= 0 a default palette (see below) of 50 colors is defined. The colors defined in this palette are OK for coloring pads, labels.

index 0->9 : grey colors from light to dark grey
index 10->19 : "brown" colors
index 20->29 : "blueish" colors
index 30->39 : "redish" colors
index 40->49 : basic colors

if ncolors == 1 && colors == 0, a Rainbow Color map is created with 50 colors. It is kept for backward compatibility. Better palettes like kBird are recommended.

High quality predefined palettes with 255 colors are available when colors == 0. The following value of ncolors give access to:

if ncolors = 51 and colors=0, a Deep Sea palette is used.
if ncolors = 52 and colors=0, a Grey Scale palette is used.
if ncolors = 53 and colors=0, a Dark Body Radiator palette is used.
if ncolors = 54 and colors=0, a Two-Color Hue palette is used.(dark blue through neutral gray to bright yellow)
if ncolors = 55 and colors=0, a Rain Bow palette is used.
if ncolors = 56 and colors=0, an Inverted Dark Body Radiator palette is used.
if ncolors = 57 and colors=0, a monotonically increasing L value palette is used.
if ncolors = 58 and colors=0, a Cubehelix palette is used
(Cf. Dave Green's "cubehelix" colour scheme at http://www.mrao.cam.ac.uk/~dag/CUBEHELIX/)
if ncolors = 59 and colors=0, a Green Red Violet palette is used.
if ncolors = 60 and colors=0, a Blue Red Yellow palette is used.
if ncolors = 61 and colors=0, an Ocean palette is used.
if ncolors = 62 and colors=0, a Color Printable On Grey palette is used.
if ncolors = 63 and colors=0, an Alpine palette is used.
if ncolors = 64 and colors=0, an Aquamarine palette is used.
if ncolors = 65 and colors=0, an Army palette is used.
if ncolors = 66 and colors=0, an Atlantic palette is used.
if ncolors = 67 and colors=0, an Aurora palette is used.
if ncolors = 68 and colors=0, an Avocado palette is used.
if ncolors = 69 and colors=0, a Beach palette is used.
if ncolors = 70 and colors=0, a Black Body palette is used.
if ncolors = 71 and colors=0, a Blue Green Yellow palette is used.
if ncolors = 72 and colors=0, a Brown Cyan palette is used.
if ncolors = 73 and colors=0, a CMYK palette is used.
if ncolors = 74 and colors=0, a Candy palette is used.
if ncolors = 75 and colors=0, a Cherry palette is used.
if ncolors = 76 and colors=0, a Coffee palette is used.
if ncolors = 77 and colors=0, a Dark Rain Bow palette is used.
if ncolors = 78 and colors=0, a Dark Terrain palette is used.
if ncolors = 79 and colors=0, a Fall palette is used.
if ncolors = 80 and colors=0, a Fruit Punch palette is used.
if ncolors = 81 and colors=0, a Fuchsia palette is used.
if ncolors = 82 and colors=0, a Grey Yellow palette is used.
if ncolors = 83 and colors=0, a Green Brown Terrain palette is used.
if ncolors = 84 and colors=0, a Green Pink palette is used.
if ncolors = 85 and colors=0, an Island palette is used.
if ncolors = 86 and colors=0, a Lake palette is used.
if ncolors = 87 and colors=0, a Light Temperature palette is used.
if ncolors = 88 and colors=0, a Light Terrain palette is used.
if ncolors = 89 and colors=0, a Mint palette is used.
if ncolors = 90 and colors=0, a Neon palette is used.
if ncolors = 91 and colors=0, a Pastel palette is used.
if ncolors = 92 and colors=0, a Pearl palette is used.
if ncolors = 93 and colors=0, a Pigeon palette is used.
if ncolors = 94 and colors=0, a Plum palette is used.
if ncolors = 95 and colors=0, a Red Blue palette is used.
if ncolors = 96 and colors=0, a Rose palette is used.
if ncolors = 97 and colors=0, a Rust palette is used.
if ncolors = 98 and colors=0, a Sandy Terrain palette is used.
if ncolors = 99 and colors=0, a Sienna palette is used.
if ncolors = 100 and colors=0, a Solar palette is used.
if ncolors = 101 and colors=0, a South West palette is used.
if ncolors = 102 and colors=0, a Starry Night palette is used.
if ncolors = 103 and colors=0, a Sunset palette is used.
if ncolors = 104 and colors=0, a Temperature Map palette is used.
if ncolors = 105 and colors=0, a Thermometer palette is used.
if ncolors = 106 and colors=0, a Valentine palette is used.
if ncolors = 107 and colors=0, a Visible Spectrum palette is used.
if ncolors = 108 and colors=0, a Water Melon palette is used.
if ncolors = 109 and colors=0, a Cool palette is used.
if ncolors = 110 and colors=0, a Copper palette is used.
if ncolors = 111 and colors=0, a Gist Earth palette is used.
if ncolors = 112 and colors=0, a Viridis palette is used.
if ncolors = 113 and colors=0, a Cividis palette is used.

These palettes can also be accessed by names:

For example:

Set the current palette as "Bird" (number 57).

The color numbers specified in the palette can be viewed by selecting the item "colors" in the "VIEW" menu of the canvas toolbar. The color parameters can be changed via TColor::SetRGB.

Note that when drawing a 2D histogram h2 with the option "COL" or "COLZ" or with any "CONT" options using the color map, the number of colors used is defined by the number of contours n specified with: h2->SetContour(n)

Definition at line 2414 of file TColor.cxx.

◆ SetRGB()

void TColor::SetRGB ( Float_t  r,
Float_t  g,
Float_t  b 
)
virtual

Initialize this color and its associated colors.

Definition at line 1702 of file TColor.cxx.

Member Data Documentation

◆ fAlpha

Float_t TColor::fAlpha
private

Alpha (transparency)

Definition at line 29 of file TColor.h.

◆ fBlue

Float_t TColor::fBlue
private

Fraction of Blue.

Definition at line 25 of file TColor.h.

◆ fGreen

Float_t TColor::fGreen
private

Fraction of Green.

Definition at line 24 of file TColor.h.

◆ fHue

Float_t TColor::fHue
private

Hue.

Definition at line 26 of file TColor.h.

◆ fLight

Float_t TColor::fLight
private

Light.

Definition at line 27 of file TColor.h.

◆ fNumber

Int_t TColor::fNumber
protected

Color number identifier.

Definition at line 21 of file TColor.h.

◆ fRed

Float_t TColor::fRed
private

Fraction of Red.

Definition at line 23 of file TColor.h.

◆ fSaturation

Float_t TColor::fSaturation
private

Saturation.

Definition at line 28 of file TColor.h.


The documentation for this class was generated from the following files:
c
#define c(i)
Definition: RSha256.hxx:119
kLightTerrain
@ kLightTerrain
Definition: TColor.h:119
kCopper
@ kCopper
Definition: TColor.h:126
kVisibleSpectrum
@ kVisibleSpectrum
Definition: TColor.h:125
kGreenBrownTerrain
@ kGreenBrownTerrain
Definition: TColor.h:117
kTeal
@ kTeal
Definition: Rtypes.h:67
RooFit::Color
RooCmdArg Color(Color_t color)
Definition: RooGlobalFunc.cxx:305
kTRUE
const Bool_t kTRUE
Definition: RtypesCore.h:91
kAvocado
@ kAvocado
Definition: TColor.h:112
c3
return c3
Definition: legend3.C:15
kDarkRainBow
@ kDarkRainBow
Definition: TColor.h:115
kDeepSea
@ kDeepSea
Definition: TColor.h:107
kCherry
@ kCherry
Definition: TColor.h:115
kPigeon
@ kPigeon
Definition: TColor.h:121
kMint
@ kMint
Definition: TColor.h:119
kGreen
@ kGreen
Definition: Rtypes.h:66
kSunset
@ kSunset
Definition: TColor.h:124
kArmy
@ kArmy
Definition: TColor.h:111
kPlum
@ kPlum
Definition: TColor.h:121
kAurora
@ kAurora
Definition: TColor.h:112
kViolet
@ kViolet
Definition: Rtypes.h:67
colors
Color * colors
Definition: X3DBuffer.c:21
TColor::GetFreeColorIndex
static Int_t GetFreeColorIndex()
Static function: Returns a free color index which can be used to define a user custom color.
Definition: TColor.cxx:2002
kGreenRedViolet
@ kGreenRedViolet
Definition: TColor.h:109
kCMYK
@ kCMYK
Definition: TColor.h:114
kBird
@ kBird
Definition: TColor.h:109
TColor::SetRGB
virtual void SetRGB(Float_t r, Float_t g, Float_t b)
Initialize this color and its associated colors.
Definition: TColor.cxx:1702
TEllipse
Definition: TEllipse.h:23
TStyle.h
kPink
@ kPink
Definition: Rtypes.h:67
Int_t
int Int_t
Definition: RtypesCore.h:45
TF2::SetContour
virtual void SetContour(Int_t nlevels=20, const Double_t *levels=0)
Set the number and values of contour levels.
Definition: TF2.cxx:897
kRose
@ kRose
Definition: TColor.h:122
kOrange
@ kOrange
Definition: Rtypes.h:67
x
Double_t x[n]
Definition: legend1.C:17
TLatex
Definition: TLatex.h:18
TColor.h
TColorWheel::Draw
virtual void Draw(Option_t *option="")
Paint the color wheel.
Definition: TColorWheel.cxx:120
TCanvas.h
kBlueYellow
@ kBlueYellow
Definition: TColor.h:108
TColorWheel::SetCanvas
virtual void SetCanvas(TCanvas *can)
Definition: TColorWheel.h:62
kPastel
@ kPastel
Definition: TColor.h:120
kCandy
@ kCandy
Definition: TColor.h:114
Bool_t
bool Bool_t
Definition: RtypesCore.h:63
kAquamarine
@ kAquamarine
Definition: TColor.h:111
TColor::InvertPalette
static void InvertPalette()
Invert the current color palette.
Definition: TColor.cxx:3133
kTemperatureMap
@ kTemperatureMap
Definition: TColor.h:124
TExec
Definition: TExec.h:28
TGeant4Unit::gray
static constexpr double gray
Definition: TGeant4SystemOfUnits.h:308
TColor::TColor
TColor()
Default constructor.
Definition: TColor.cxx:983
TGeant4Unit::L
static constexpr double L
Definition: TGeant4SystemOfUnits.h:123
kSouthWest
@ kSouthWest
Definition: TColor.h:123
kBeach
@ kBeach
Definition: TColor.h:113
kBlack
@ kBlack
Definition: Rtypes.h:65
kFruitPunch
@ kFruitPunch
Definition: TColor.h:116
kCyan
@ kCyan
Definition: Rtypes.h:66
kBrownCyan
@ kBrownCyan
Definition: TColor.h:114
TColorWheel
Definition: TColorWheel.h:24
TF2.h
kMagenta
@ kMagenta
Definition: Rtypes.h:66
kAtlantic
@ kAtlantic
Definition: TColor.h:112
gStyle
R__EXTERN TStyle * gStyle
Definition: TStyle.h:412
kSandyTerrain
@ kSandyTerrain
Definition: TColor.h:122
TColor
Definition: TColor.h:19
kDarkTerrain
@ kDarkTerrain
Definition: TColor.h:116
kRainBow
@ kRainBow
Definition: TColor.h:108
kDarkBodyRadiator
@ kDarkBodyRadiator
Definition: TColor.h:107
a
auto * a
Definition: textangle.C:12
kBlackBody
@ kBlackBody
Definition: TColor.h:113
kLightTemperature
@ kLightTemperature
Definition: TColor.h:119
kFALSE
const Bool_t kFALSE
Definition: RtypesCore.h:92
kWhite
@ kWhite
Definition: Rtypes.h:65
kRedBlue
@ kRedBlue
Definition: TColor.h:121
kFuchsia
@ kFuchsia
Definition: TColor.h:117
TColor::GetColorBright
static Int_t GetColorBright(Int_t color)
Static function: Returns the bright color number corresponding to n If the TColor object does not exi...
Definition: TColor.cxx:1913
kViridis
@ kViridis
Definition: TColor.h:127
TF2::Draw
virtual void Draw(Option_t *option="")
Draw this function with its current attributes.
Definition: TF2.cxx:241
UInt_t
unsigned int UInt_t
Definition: RtypesCore.h:46
y
Double_t y[n]
Definition: legend1.C:17
kGreenPink
@ kGreenPink
Definition: TColor.h:118
kRed
@ kRed
Definition: Rtypes.h:66
kStarryNight
@ kStarryNight
Definition: TColor.h:124
kBlueGreenYellow
@ kBlueGreenYellow
Definition: TColor.h:113
kSolar
@ kSolar
Definition: TColor.h:123
kGreyScale
@ kGreyScale
Definition: TColor.h:107
TColor::SetAlpha
virtual void SetAlpha(Float_t a)
Definition: TColor.h:67
kSpring
@ kSpring
Definition: Rtypes.h:67
TF2
Definition: TF2.h:29
kPearl
@ kPearl
Definition: TColor.h:120
kThermometer
@ kThermometer
Definition: TColor.h:125
kLake
@ kLake
Definition: TColor.h:118
TExec.h
TObject::Draw
virtual void Draw(Option_t *option="")
Default Draw method for all objects.
Definition: TObject.cxx:197
f1
TF1 * f1
Definition: legend1.C:11
Double_t
double Double_t
Definition: RtypesCore.h:59
TGraph
Definition: TGraph.h:41
TF1::SetTitle
virtual void SetTitle(const char *title="")
Set function title if title has the form "fffffff;xxxx;yyyy", it is assumed that the function title i...
Definition: TF1.cxx:3569
kOcean
@ kOcean
Definition: TColor.h:110
TStyle::SetPalette
void SetPalette(Int_t ncolors=kBird, Int_t *colors=0, Float_t alpha=1.)
See TColor::SetPalette.
Definition: TStyle.cxx:1785
kGistEarth
@ kGistEarth
Definition: TColor.h:127
TCanvas
Definition: TCanvas.h:23
TColor::CreateGradientColorTable
static Int_t CreateGradientColorTable(UInt_t Number, Double_t *Stops, Double_t *Red, Double_t *Green, Double_t *Blue, UInt_t NColors, Float_t alpha=1.)
Static function creating a color table with several connected linear gradients.
Definition: TColor.cxx:2225
TF1::Draw
virtual void Draw(Option_t *option="")
Draw this function with its current attributes.
Definition: TF1.cxx:1338
arrow
Definition: RArrowDS.hxx:9
kWaterMelon
@ kWaterMelon
Definition: TColor.h:126
kRust
@ kRust
Definition: TColor.h:122
graph
Definition: graph.py:1
TColor::GetColorTransparent
static Int_t GetColorTransparent(Int_t color, Float_t a)
Static function: Returns the transparent color number corresponding to n.
Definition: TColor.cxx:1976
TArrow
Definition: TArrow.h:29
kColorPrintableOnGrey
@ kColorPrintableOnGrey
Definition: TColor.h:110
TColor::GetColorDark
static Int_t GetColorDark(Int_t color)
Static function: Returns the dark color number corresponding to n If the TColor object does not exist...
Definition: TColor.cxx:1945
kNeon
@ kNeon
Definition: TColor.h:120
kBlue
@ kBlue
Definition: Rtypes.h:66
c2
return c2
Definition: legend2.C:14
kCoffee
@ kCoffee
Definition: TColor.h:115
kSienna
@ kSienna
Definition: TColor.h:123
kGray
@ kGray
Definition: Rtypes.h:65
kFall
@ kFall
Definition: TColor.h:116
kCubehelix
@ kCubehelix
Definition: TColor.h:109
TMarker
Definition: TMarker.h:22
kCividis
@ kCividis
Definition: TColor.h:127
kCool
@ kCool
Definition: TColor.h:126
kIsland
@ kIsland
Definition: TColor.h:118
kAzure
@ kAzure
Definition: Rtypes.h:67
kYellow
@ kYellow
Definition: Rtypes.h:66
kBlueRedYellow
@ kBlueRedYellow
Definition: TColor.h:110
kAlpine
@ kAlpine
Definition: TColor.h:111
gROOT
#define gROOT
Definition: TROOT.h:406
kInvertedDarkBodyRadiator
@ kInvertedDarkBodyRadiator
Definition: TColor.h:108
kGreyYellow
@ kGreyYellow
Definition: TColor.h:117
c1
return c1
Definition: legend1.C:41
TColor::SetColorThreshold
static void SetColorThreshold(Float_t t)
This method specifies the color threshold used by GetColor to retrieve a color.
Definition: TColor.cxx:1838
kValentine
@ kValentine
Definition: TColor.h:125