この文書の現在のバージョンと選択したバージョンの差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
|
ja:root:axis [2016/12/11 07:12] kota [軸をLogにする] |
ja:root:axis [2018/10/20 18:38] (現在) kota [Grid 関係] |
||
|---|---|---|---|
| ライン 32: | ライン 32: | ||
| ---- | ---- | ||
| + | |||
| + | ==== 軸のラベルをtextにする ==== | ||
| + | === 元のラベルを飛ばして、手動でtextを配置する方法 === | ||
| + | <code cpp> | ||
| + | hist->GetXaxis()->SetLabelOffset(100); // 範囲外へ元の数字のラベルを飛ばしてしまう | ||
| + | hist->GetXaxis()->SetNdivisions(3,1,1); | ||
| + | TLatex *label = new TLatex(); | ||
| + | label->SetTextSize(0.07); | ||
| + | label->DrawLatexNDC(0.18,0.04,"K_{L}#rightarrow3#pi^{0}");// TLatexでtextを書いていく | ||
| + | label->DrawLatexNDC(0.45,0.04,"K_{L}#rightarrow2#pi^{0}"); | ||
| + | label->DrawLatexNDC(0.72,0.04,"K_{L}#rightarrow2#gamma"); | ||
| + | </code> | ||
| + | |||
| + | === SetBinLabel functionを使う方法 === | ||
| + | <code cpp> | ||
| + | hist->GetXaxis()->SetBinLabel(1,"K_{L}#rightarrow3#pi^{0}");//第一引数はibin | ||
| + | hist->GetXaxis()->SetBinLabel(2,"K_{L}#rightarrow2#pi^{0}");// ibin=0 はunderflow | ||
| + | hist->GetXaxis()->SetBinLabel(3,"K_{L}#rightarrow2#gamma"); // ibin=nbin+1 はoverflow を表す | ||
| + | hist->GetXaxis()->SetLabelSize(0.07); | ||
| + | </code> | ||
| + | |||
| + | === TPad::DrawFrame を使った場合 === | ||
| + | DrawFrame functionで生成されるhistogramは、実はnbin=1000をもつ。 | ||
| + | 必要なbin数にまでrebinしてまとめてやった上でSetBinLabelを呼べば良い。 | ||
| + | <code cpp> | ||
| + | TString LabelText[3] = { "K_{L}#rightarrow3#pi^{0}", | ||
| + | "K_{L}#rightarrow2#pi^{0}", | ||
| + | "K_{L}#rightarrow2#gamma" }; | ||
| + | |||
| + | TCanvas *c = new TCanvas("c","c",700,500); | ||
| + | TH1F *frame = (TH1F*)c->DrawFrame(0,3,3,4.5); | ||
| + | |||
| + | frame->GetXaxis()->SetNdivisions(3,1,1); | ||
| + | frame->Rebin( frame->GetNbinsX()/3 ); | ||
| + | |||
| + | for(Int_t i = 0 ; i < 3 ; ++i) | ||
| + | frame->GetXaxis()->SetBinLabel(i+1,LabelText[i]); | ||
| + | |||
| + | frame->GetXaxis()->SetLabelSize(0.07); | ||
| + | </code> | ||
| + | ---- | ||
| + | |||
| ==== 軸の色を変える ==== | ==== 軸の色を変える ==== | ||
| ライン 44: | ライン 86: | ||
| ==== 軸の範囲を固定する ==== | ==== 軸の範囲を固定する ==== | ||
| + | === 1DヒストグラムでYを固定 === | ||
| + | <code c_mac> | ||
| + | hist->SetMinimum(0); | ||
| + | hist->SetMaximum(100); | ||
| + | </code> | ||
| + | |||
| + | === 2DヒストグラムでZを固定 === | ||
| <code c_mac> | <code c_mac> | ||
| hist->GetZaxis()->SetRangeUser(0.,1000); | hist->GetZaxis()->SetRangeUser(0.,1000); | ||
| ライン 73: | ライン 122: | ||
| hist->GetXaxis()->SetNdivisions(Int_t N1, Int_t N2, Int_t N3, Bool_t optim=kTRUE); | hist->GetXaxis()->SetNdivisions(Int_t N1, Int_t N2, Int_t N3, Bool_t optim=kTRUE); | ||
| //こんなのもある。この方がわかりやすいかも。 | //こんなのもある。この方がわかりやすいかも。 | ||
| + | |||
| + | hist->SetTickLength(Float_t length = 0.02, Option_t* axis = "X"); | ||
| gStyle->SetTickLength(Float_t length = 0.03, Option_t* axis = "X"); | gStyle->SetTickLength(Float_t length = 0.03, Option_t* axis = "X"); | ||
| ライン 115: | ライン 166: | ||
| gStyle->SetTitleH(Float_t h = 0); //Title box の高さ | gStyle->SetTitleH(Float_t h = 0); //Title box の高さ | ||
| - | gStyle->SetTitleAlign(Int_t a = 13); | + | gStyle->SetTitleAlign(Int_t a = 13);// a=10*h+v, h=1,2,3 for left, center, top, v=1,2,3 for bottom, middle, top |
| + | // gStyle->SetTitleX(x)などでtitle boxのどこをxに合わせるかを指定する。 | ||
| gStyle->SetTitleFillColor(Color_t color = 1); | gStyle->SetTitleFillColor(Color_t color = 1); | ||
| gStyle->SetTitleTextColor(Color_t color = 1); | gStyle->SetTitleTextColor(Color_t color = 1); | ||
| gStyle->SetTitleStyle(Style_t style = 1001); | gStyle->SetTitleStyle(Style_t style = 1001); | ||
| gStyle->SetTitleFontSize(Float_t size = 0); | gStyle->SetTitleFontSize(Float_t size = 0); | ||
| - | gStyle->SetTitleBorderSize(Width_t size = 2); | + | gStyle->SetTitleBorderSize(Width_t size = 2);// タイトルの枠線 |
| ライン 170: | ライン 222: | ||
| gStyle->SetGridColor(Color_t color = 0); // グリッド線の色を指定 | gStyle->SetGridColor(Color_t color = 0); // グリッド線の色を指定 | ||
| gStyle->SetGridWidth(Width_t width = 1); // グリッド線の線幅を指定(ピクセル単位) | gStyle->SetGridWidth(Width_t width = 1); // グリッド線の線幅を指定(ピクセル単位) | ||
| + | |||
| + | ///// pad毎に指定したい場合 | ||
| + | gPad->SetGrid(1,0);//// x(縦線)を表示(1)、y(横線)を非表示(0) | ||
| + | gPad->SetGridx(1);///// 一方だけいじるfunctionもある。 | ||
| + | gPad->SetGridy(1); | ||
| </code> | </code> | ||