この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
ja:root:wantto7 [2018/08/22 16:58] kota |
ja:root:wantto7 [2018/08/22 17:42] (現在) kota |
||
---|---|---|---|
ライン 2: | ライン 2: | ||
---- | ---- | ||
- | === 元のラベルを飛ばして、手動でtextを配置する方法 === | + | ===== 元のラベルを飛ばして、手動でtextを配置する方法 ===== |
<code cpp> | <code cpp> | ||
hist->GetXaxis()->SetLabelOffset(100); // 範囲外へ元の数字のラベルを飛ばしてしまう | hist->GetXaxis()->SetLabelOffset(100); // 範囲外へ元の数字のラベルを飛ばしてしまう | ||
ライン 13: | ライン 13: | ||
</code> | </code> | ||
- | === SetBinLabel functionを使う方法 === | + | |
+ | ===== SetBinLabel functionを使う方法 ===== | ||
<code cpp> | <code cpp> | ||
hist->GetXaxis()->SetBinLabel(1,"K_{L}#rightarrow3#pi^{0}");//第一引数はibin | hist->GetXaxis()->SetBinLabel(1,"K_{L}#rightarrow3#pi^{0}");//第一引数はibin | ||
ライン 33: | ライン 34: | ||
///// X-axis ///// | ///// X-axis ///// | ||
frame->GetXaxis()->SetNdivisions(NMode,1,1,false); | frame->GetXaxis()->SetNdivisions(NMode,1,1,false); | ||
- | frame->GetXaxis()->SetLabelSize(0.06); | + | frame->GetXaxis()->SetLabelSize(0.08); |
for(Int_t i = 0 ; i < NMode ; ++i) | for(Int_t i = 0 ; i < NMode ; ++i) | ||
frame->GetXaxis()->SetBinLabel(i+1,LabelText[i]); | frame->GetXaxis()->SetBinLabel(i+1,LabelText[i]); | ||
///// Y-axis ///// | ///// Y-axis ///// | ||
- | const Double_t Ymin = 0.2; | + | const Double_t Ymin = 0.5; |
- | const Double_t Ymax = 1.2; | + | const Double_t Ymax = 1.5; |
frame->SetMinimum(Ymin); | frame->SetMinimum(Ymin); | ||
frame->SetMaximum(Ymax); | frame->SetMaximum(Ymax); | ||
ライン 52: | ライン 53: | ||
frame->Draw(); | frame->Draw(); | ||
- | |||
</code> | </code> | ||
- | * フレームだけ書くにはstat. boxが出てくると邪魔なので、frame->SetBit(TH1::kNoStats)で出ないようにしておく。 | + | * フレームだけ書くにはstat. boxが出てくると邪魔なので、frame->SetBit(TH1::kNoStats)で出ないようにしておく。もちろんframe->SetStats(0)でもOK |
* frame->GetXaxis()->SetNdivisions(NMode,1,1,false)で、目盛が余計なところに出ないように設定。第4引数をfalseにしておくことで、rootが余計な気を利かせてくるのを阻止。 | * frame->GetXaxis()->SetNdivisions(NMode,1,1,false)で、目盛が余計なところに出ないように設定。第4引数をfalseにしておくことで、rootが余計な気を利かせてくるのを阻止。 | ||
* frame->SetMinimum(Ymin), frame->SetMaximum(Ymax)でY軸の範囲を指定 | * frame->SetMinimum(Ymin), frame->SetMaximum(Ymax)でY軸の範囲を指定 | ||
- | * ラベルの文字数が多かったりすると文字が切れてしまったりするので、SetBottomMarginなどでpadの余白を調節。 | + | * ラベルの文字数が多かったりすると文字が切れてしまったりするので、c->SetBottomMargin(..)などでpadの余白を調節。defaultは0.1(10%)。 |
+ | {{:ja:root:スクリーンショット_2018-08-23_2.17.03.png?800|}} | ||
- | === TPad::DrawFrame を使った場合 === | + | ==== TPad::DrawFrame を使った場合 ==== |
DrawFrame functionで生成されるhistogramは、実はnbin=1000をもつ。 | DrawFrame functionで生成されるhistogramは、実はnbin=1000をもつ。 | ||
必要なbin数にまでrebinしてまとめてやった上でSetBinLabelを呼べば良い。\\ | 必要なbin数にまでrebinしてまとめてやった上でSetBinLabelを呼べば良い。\\ | ||
ライン 82: | ライン 83: | ||
frame->GetXaxis()->SetLabelSize(0.07); | frame->GetXaxis()->SetLabelSize(0.07); | ||
</code> | </code> | ||
- | ---- | ||