TLegend編

TLegendやTTextとかも含めて、凡例表示に関して

凡例を表示したい

TLegendを使ってプロットの凡例を表示できます。

1TLegend *leg = new TLegend(0.2, 0.7, 0.5, 0.9, "");
2leg->AddEntry(gre1, Form("RUN%d", nrun1), "lp");
3leg->AddEntry(gre2, Form("RUN%d", nrun2), "lp");
4leg->SetFillStyle(0);
5leg->Draw();
  • TLegendオブジェクトにはさまざまなROOTオブジェクトを追加(AddEntry)することができる(はず)

  • 凡例のラベル表示のオプション

    • l — 線を表示;SetLineColorした色が表示される

    • p — 点を表示;SetMarkerStyle, SetMarkerColorしたマーカー・、色が表示される

    • f — 背景を表示;SetFillStyle, SetFillColorがした色、スタイルが表示される

  • TLegendの背景は、デフォルトで灰色なので、SetFillStyle(0)(背景なし)、もしくはSetFillColor(0)(白塗り)する必要がある

任意の位置に文字を表示したい

TTextを使って任意の位置に文字を表示できます。

1TText *t = new TText(0.5, 0.5, "");
2t->DrawTextNDC(0.2, 0.75, Form("Relative Q.E = %.2f", p1));

任意の位置に文字を表示したい

TPaveTextを使うとより複雑な文字を表示できます。

1TPaveText *pt=new TPaveText(0.15,0.6,0.45,0.8,"brNDC");
2pt->SetFillStyle(0);
3pt->SetBorderSize(0);
4TText* tt;
5tt=pt->AddText(Form("Mean = %.2f", mean));
6tt=pt->AddText(Form("RMS  = %.2f", rms));
7tt=pt->AddText(Form("R/M  = %.2f %%", rms/mean * 100));
8tt->SetTextColor(kRed);
9pt->Draw();
  • AddText()した後に、SetTextColor()をすることで、その文字列だけ色を変更できる