補助線を表示したい(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->SetPadGridxgStyle->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);   // 線の太さ

リファレンス