補助線を表示したい(gStyle->SetPadGrid*)
1#include <TStyle.h>
2
3// X軸に補助線を表示
4gStyle->SetPadGridx(1);
5
6// Y軸に補助線を表示
7gStyle->SetPadGridy(1);
8
9// 両軸に補助線を表示
10gStyle->SetPadGridx(1);
11gStyle->SetPadGridy(1);
gStyle->SetPadGridxとgStyle->SetPadGridyメソッドで、
グラフやヒストグラムの背景に補助線(グリッドライン)を表示できます。
1from ROOT import gStyle
2
3# X軸に補助線を表示
4gStyle.SetPadGridx(1)
5
6# Y軸に補助線を表示
7gStyle.SetPadGridy(1)
8
9# 両軸に補助線を表示
10gStyle.SetPadGridx(1)
11gStyle.SetPadGridy(1)
グリッドラインを理解したい
グリッドラインは、グラフ上の値を読み取る際に参考となる補助線です。
グリッドラインの役割
視認性の向上: データポイントの座標値を視覚的に読み取りやすくする
精度の向上: 軸との対応関係が明確になり、値の読み誤りを減らせる
比較を簡単に: 複数のデータ系列を比較する際に、値の大小関係を判断しやすい
設定値
0:グリッドラインを表示しない(デフォルト)1:グリッドラインを表示する
異なるグリッド設定を使いたい
X軸のみに補助線を表示
1#include <TStyle.h>
2
3gStyle->SetPadGridx(1);
4gStyle->SetPadGridy(0);
X軸方向の値を読み取りやすくしたい場合に有効です。 例:時系列データ、周波数特性
Y軸のみに補助線を表示
1#include <TStyle.h>
2
3gStyle->SetPadGridx(0);
4gStyle->SetPadGridy(1);
Y軸方向の値を読み取りやすくしたい場合に有効です。 例:大きさ比較、相対値の評価
X軸とY軸の両方に補助線を表示
1#include <TStyle.h>
2
3gStyle->SetPadGridx(1);
4gStyle->SetPadGridy(1);
XY平面全体で座標値を読み取りたい場合に有効です。 例:散布図、2次元デーマップ
グリッドラインを非表示にする
1#include <TStyle.h>
2
3gStyle->SetPadGridx(0);
4gStyle->SetPadGridy(0);
すべてのグリッドラインを非表示にします。
実用例
論文用(シンプルで見やすい)
1#include <TStyle.h>
2
3// Y軸のみに補助線を表示
4gStyle->SetPadGridx(0);
5gStyle->SetPadGridy(1);
論文ではシンプルさが重視されるため、 必要最小限のY軸補助線のみを表示するのが一般的です。 これにより、値の読み取りが容易になります。
プレゼンテーション用(見やすく強調)
1#include <TStyle.h>
2
3// 両軸に補助線を表示
4gStyle->SetPadGridx(1);
5gStyle->SetPadGridy(1);
プレゼンテーションではグラフの見やすさが重要なため、 両軸に補助線を表示して、データポイントの座標を視覚的に把握しやすくします。
データ分析用(詳細な読み取り)
1#include <TStyle.h>
2
3// 両軸に補助線を表示
4gStyle->SetPadGridx(1);
5gStyle->SetPadGridy(1);
6
7// 軸の目盛りも詳細に表示
8gStyle->SetNdivisions(510, "X");
9gStyle->SetNdivisions(510, "Y");
データ分析では精密な値の読み取りが必要なため、 両軸の補助線と詳細な目盛りを組み合わせます。
測定データの可視化
1#include <TStyle.h>
2
3// Y軸のみに補助線を表示
4gStyle->SetPadGridy(1);
測定結果のプロットでは、Y軸(測定値)の読み取りが重要なため、 Y軸補助線のみを表示します。
時系列グラフ
1#include <TStyle.h>
2
3// X軸のみに補助線を表示
4gStyle->SetPadGridx(1);
時系列データでは、X軸(時間)の読み取りが重要なため、 X軸補助線のみを表示します。
グリッドラインのカスタマイズ
グリッドラインのスタイルを変更
1#include <TStyle.h>
2#include <TH1F.h>
3
4TH1F *hist = new TH1F("hist", "Histogram", 100, 0, 10);
5// ...データをFill...
6
7// グリッドラインを表示
8hist->GetPainter()->SetGridx();
9hist->GetPainter()->SetGridy();
10
11// グリッドラインのスタイルを変更(破線など)
12gStyle->SetGridStyle(2); // 2 = 破線
13gStyle->SetGridColor(kGray);
14gStyle->SetGridWidth(1);
個別のオブジェクトで設定
1#include <TStyle.h>
2#include <TCanvas.h>
3#include <TH1F.h>
4
5TCanvas *c = new TCanvas();
6TH1F *hist = new TH1F("hist", "Histogram", 100, 0, 10);
7
8// キャンバス単位でグリッドを設定
9c->SetGridx(1);
10c->SetGridy(1);
11
12hist->Draw();
13c->Draw();
注意事項
グリッドラインの密度: 目盛りが多すぎると、グリッドラインが煩雑になります。必要に応じて目盛り数を調整してください
グリッドラインと背景色: グリッドラインが見えにくい場合は、背景色やグリッドラインの色を調整してください
印刷時の見え方: スクリーン表示では見やすくても、印刷時にグリッドラインが目立ちすぎることがあります
グリッドラインのスタイル設定
グリッドラインの外観をさらにカスタマイズする場合:
1#include <TStyle.h>
2
3gStyle->SetPadGridx(1);
4gStyle->SetPadGridy(1);
5
6// グリッドラインのスタイル
7gStyle->SetGridStyle(1); // 1 = 実線、2 = 破線、3 = 点線
8gStyle->SetGridColor(15); // カラーコード(15 = グレー)
9gStyle->SetGridWidth(1); // 線の太さ