ヒストグラムの見た目を変更したい(gStyle->SetHist*

1#include <TStyle.h>
2
3gStyle->SetHistLineWidth(2);      // 線幅
4gStyle->SetHistLineColor(1);      // 線の色
5gStyle->SetHistLineStyle(1);      // 線のスタイル
6gStyle->SetHistFillStyle(0);      // 塗りつぶしスタイル
7gStyle->SetHistFillColor(1);      // 塗りつぶしの色

gStyle->SetHist*系のメソッドで、ヒストグラムのデフォルト表示属性を変更できます。 SetHistLine*で線の幅、色、スタイル、 SetHistFill*で塗りつぶしをカスタマイズできます。

1from ROOT import gStyle
2
3gStyle.SetHistLineWidth(2)        # 線幅
4gStyle.SetHistLineColor(1)        # 線の色
5gStyle.SetHistLineStyle(1)        # 線のスタイル
6gStyle.SetHistFillStyle(0)        # 塗りつぶしスタイル
7gStyle.SetHistFillColor(1)        # 塗りつぶしの色

注釈

gStyle で設定した値は、その後に作成されるヒストグラムに適用されます。 .rootrcで設定し、全体に読み込ませるとよいです。

すでに作成されたヒストグラムに適用するには、 各ヒストグラムオブジェクトの SetLineWidth()SetLineColor() などのメソッドを使用してください

線の幅を変更したい(SetHistLineWidth

1gStyle->SetHistLineWidth(2);      // デフォルト: 1

gStyle->SetHistLineWidthメソッドで、 ヒストグラムの外枠線の太さを変更できます。 デフォルトは1です。 やや太い2がオススメです。 3以上は太くなりすぎて、複数ヒストグラムの重ね描き時は見えにくくなる可能性があります。

線の色を変更したい(SetHistLineColor

1gStyle->SetHistLineColor(1);      // 黒
2gStyle->SetHistLineColor(2);      // 赤
3gStyle->SetHistLineColor(3);      // 緑
4gStyle->SetHistLineColor(4);      // 青
5gStyle->SetHistLineColor(5);      // 黄
6gStyle->SetHistLineColor(6);      // マゼンタ
7gStyle->SetHistLineColor(7);      // シアン

gStyle->SetHistLineColorメソッドで ヒストグラムの外枠線の色を変更できます。

線のスタイルを変更したい(SetHistLineStyle

1gStyle->SetHistLineStyle(1);      // 実線(デフォルト)
2gStyle->SetHistLineStyle(2);      // 破線
3gStyle->SetHistLineStyle(3);      // 点線
4gStyle->SetHistLineStyle(4);      // 一点鎖線

gStyle->SetHistLineStyleメソッドで、 ヒストグラムの外枠線のスタイルを変更できます。

塗りつぶしスタイルを変更したい(SetHistFillStyle

1gStyle->SetHistFillStyle(0);      // 塗りつぶしなし
2gStyle->SetHistFillStyle(1001);   // 単色で塗りつぶし
3gStyle->SetHistFillStyle(3001);   // 網目模様(水平線)
4gStyle->SetHistFillStyle(3004);   // ハッチング(斜線+45°)
5gStyle->SetHistFillStyle(3005);   // ハッチング(逆斜線-45°)

gStyle->SetHistFillStyleメソッドでヒストグラムの内部の塗りつぶし方法を指定します。

塗りつぶしの色を変更したい(SetHistFillColor

1gStyle->SetHistFillColor(2);      // 赤で塗りつぶし

gStyle->SetHistFillColorメソッドで、 ヒストグラムの内部の塗りつぶし色を指定します。 SetHistLineColor と同じカラーコードを使用します。

実用例

落ち着いた配色にしたい

1#include <TStyle.h>
2
3gStyle->SetHistLineWidth(2);
4gStyle->SetHistLineColor(1);      // 黒
5gStyle->SetHistLineStyle(1);      // 実線
6gStyle->SetHistFillStyle(0);      // 塗りつぶしなし

視認性を重視したい

1#include <TStyle.h>
2
3gStyle->SetHistLineWidth(3);
4gStyle->SetHistLineColor(4);      // 青
5gStyle->SetHistLineStyle(1);      // 実線
6gStyle->SetHistFillStyle(1001);   // 単色塗りつぶし
7gStyle->SetHistFillColor(4);      // 青で塗りつぶし

複数のヒストグラムを重ねたい

1#include <TStyle.h>
2
3gStyle->SetHistLineWidth(2);
4gStyle->SetHistFillStyle(0);      // 塗りつぶしなし(背景が透ける)
5// 各ヒストグラムで異なる色を指定

複数のヒストグラムを重ね描きする場合、 線幅が太すぎるとヒストグラムが見えにくくなる可能性があります。

リファレンス