ROOT で使われる色をプレゼンで見やすく変更しよう
ROOT では色の種類を番号で表します。ROOT で default で用意されており、通常よく使われるものは、1:黒 (K)、2:赤 (R)、3:緑 (G)、4:青 (B)、5:黄色 (Y)、6:マゼンタ (M)、7:シアン (C) です。
しかしこれらの色のうち、プレゼン中で使うべきではない色に緑 (G) と黄色 (Y) とシアン (C) があります。背景色が白の場合、線の色が明るすぎて、会場の状況によっては聴衆から識別が困難なためです*1。ということで、このうち 2 色を少し見やすく変えてやりましょう。それぞれ深緑とオレンジにしちゃいます。シアンは他の良い代替案が思いつかないので、もう 7 色目を使うのは諦めましょう。
例えば以下の ROOT script で、color() と color_mod() を実行します。
void color() { TLegend* leg = new TLegend(0.75, 0.15, 0.88, 0.6); TF1* f[7]; for(int i = 0; i < 7; i++){ f[i] = new TF1(Form("f%d", i), Form("x*x + %f", i*0.1), 0, 1); f[i]->SetLineColor(i + 1); f[i]->SetLineWidth(3); f[i]->Draw(i == 0 ? "" : "same"); leg->AddEntry(f[i], Form("col = %d", i + 1), "l"); } // i leg->SetFillStyle(0); leg->Draw(); } void color_mod() { gROOT->GetColor(3)->SetRGB(0., 0.7, 0.); // Green (0, 1, 0)->(0, 0.7, 0) gROOT->GetColor(5)->SetRGB(1., 0.5, 0.); // Yellow (1, 1, 0)->(0, 0.5, 0) color(); }
gROOT->GetColor(3)->SetRGB(0., 0.7, 0.); // Green (0, 1, 0)->(0, 0.7, 0) gROOT->GetColor(5)->SetRGB(1., 0.5, 0.); // Yellow (1, 1, 0)->(0, 0.5, 0)
この 2 行で、色番号 3 と 5 の TColor への pointer を取り出し、RGB の割合を再設定してやっています。この 2 行を ~/.rootlogon.C に追記すれば、いつでもこの設定で使用できます。
*1:多分、この blog 上でも読みづらいはずです。