基本颜色

root中有50种(0-50)基本颜色,你可以通过数字使用它们:

明亮颜色

root 支持 Web 应用程序的 216 种颜色。 通过色彩索引编码 300-1000 或者色彩名称 kRed、kBlue、kYellow、kPink 等或 kRed+5 等使用。

完整的颜色与数字对应如下:

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

RGB色彩

root 也支持 RGB 色彩编码规则TColor::SetRGB

root [1] auto *color = gROOT->GetColor(1)
(TColor *) 0x600002c5ff00
root [3] auto *c1 = new TCanvas
root [3] color->SetRGB(0.5,0.5,0.5)
root [4] c1->SetFillColor(color->GetNumber())
root [5] c1->Draw()
// ================================ 不编码使用
root [6] color->SetRGB(241./255, 243./255, 229./255)    // SetGRB函数中三位参数用百分比表示
root [7] c1->SetFillColor(color->GetNumber())
root [8] c1->Draw()
// ================================
root [9] TColor *color = new TColor(1000, 0.1, 0.2, 0.3);
Warning in <TColor::TColor>: color 1000 already defined
root [10] c1->SetFillColor(1000)
root [11] c1->Draw()
root [12] TColor *color = new TColor(1500, 0.1, 0.2, 0.3);
root [13] c1->SetFillColor(1500)
root [14] c1->Draw()
root [15] TColor *color = new TColor(1500, 0., 1., 1.);
Warning in <TColor::TColor>: color 1500 already defined
root [16] c1->SetFillColor(1500)
root [17] c1->Draw()
root [18] TColor *color = new TColor(1501, 0., 1., 1.);
root [19] c1->SetFillColor(1501)
// ================================ 编码使用,但是重复编码的颜色不会生效

透明视图

此函数也用于SetFillColorAlpha()、SetLineColorAlpha()、SetMarkerColorAlpha()SetTextColorAlpha()

h1->SetFillColorAlpha(kBlue, 0.35);

在示例中,直方图的填充色为蓝色,不透明度为35%。

灰度视图

使用TCanvas::SetGrayscale()在灰度预览和常规彩色模式之间切换。

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

调色板/色带