Deprecated: Array and string offset access syntax with curly braces is deprecated in /mnt/hep_web/hep_web/member/n-kota/dokuwiki/inc/init.php on line 542
ja:root:axis [GiriWiki]

ユーザ用ツール

サイト用ツール


ja:root:axis

以前のリビジョンの文書です



Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /mnt/hep_web/hep_web/member/n-kota/dokuwiki/inc/parser/handler.php on line 1458

Warning: Declaration of syntax_plugin_note::handle($match, $state, $pos, &$handler) should be compatible with DokuWiki_Syntax_Plugin::handle($match, $state, $pos, Doku_Handler $handler) in /mnt/hep_web/hep_web/member/n-kota/dokuwiki/lib/plugins/note/syntax.php on line 79

Warning: Declaration of syntax_plugin_note::render($mode, &$renderer, $indata) should be compatible with DokuWiki_Syntax_Plugin::render($format, Doku_Renderer $renderer, $data) in /mnt/hep_web/hep_web/member/n-kota/dokuwiki/lib/plugins/note/syntax.php on line 101

Warning: preg_match(): Compilation failed: invalid range in character class at offset 3120 in /mnt/hep_web/hep_web/member/n-kota/dokuwiki/inc/parser/lexer.php on line 118
A PCRE internal error occured. This might be caused by a faulty plugin

====== 軸の設定・装飾 ====== ---- ===== はじめに ===== ROOTでは軸の目盛文字のことを**”Label”**といい、[MeV]とか[cm]とかの軸に添わせた文字を**”Title”**という。 また、目盛線のことを**”Tick”**という。 ---- ===== Axis 関係 ===== ==== 軸をLogにする ==== * いくつか方法あり === 複数のcanvasで一括してLogに変更 === <code c_mac> gStyle->SetOptLogx(1); // X軸の目盛をログ表示 gStyle->SetOptLogy(1); // Y軸の目盛をログ表示 </code> * gStyle はそもそもデフォルトを変更するためのもの。 * gStyle%%->%%SetOptLogy() のように()の中が空でも構わない。 * 対数軸をやめて通常に戻すには gStyle%%->%%SetOptLogy(0) のようにすればよい。 === 今いるcanvasの軸をLogにする === <code c_mac> gPad->SetLogy(1); </code> *gPadは "今いるキャンバス" のことを指す。(TCanvas *c = new TCanvas("c","c",600,300); c%%->%%Divide(2,1); c%%->%%cd(1) だと、左側のキャンバスを指す) *gPad%%->%%SetLogy() でも同じ *通常軸に戻すには gPad%%->%%SetLogy(0) ==== 軸の色を変える ==== <code c_mac> gStyle->SetAxisColor(Color_t color = 1, Option_t* axis = "X"); </code> ---- ==== 軸の範囲を固定する ==== <code c_mac> hist->GetZaxis()->SetRangeUser(0.,1000); </code> * SetRangeUser を使う。Zを固定したのは、2Dヒストを描いたとき。 ---- ===== Tick 関係(軸目盛) ===== <code c_mac> gStyle->SetPadTickX(Int_t tickx); gStyle->SetPadTickY(Int_t ticky); gStyle->SetNdivisions(Int_t n = 510, Option_t* axis = "X"); // n = 1000*N3 + 100*N2 + N1 ---> n = CCBBAA ( CC:N3 , BB:N2 , AA:N1 ) // N1 : まず、軸をN1分割する(n=2なら軸の真ん中に1本目盛が入る) // N2 : N1で分割した中の各区画をN2分割する // N3 : N2で分割した中の各区画をさらにN3分割する gStyle->SetTickLength(Float_t length = 0.03, Option_t* axis = "X"); //目盛線の長さを指定。単位はフレームに対する比率 //指定するのはSetNdivisionsのN1で付けられた目盛。N2の目盛はその半分の長さ、N3はさらに半分になる。 //内側を正の向きとし、負号の数を入れると外向きになる。 </code> =====Title ,軸Title 関係 ===== *軸タイトルの方法と関係が深い * まず、Titleを書く方法(デフォルトだと、ヒストグラムにいれたパラメータ名とカット条件が書かれる) <code c_mac> Th1D *h = new TH1D("histname","title;Xtitle;Ytitle",bin,min,max);//ヒストを作る際、セミコロンで“全体のタイトル;X軸名;Y軸名”と書く h->SetTitle("Title");//ヒストからSetTitleする。(全体) h->SetXTitle("X Title");//ヒストからSetTitleする。グラフでは使えない。(X) h->SetYTitle("Y Title");//ヒストからSetTitleする。グラフでは使えない。(Y) h->GetXaxis()->SetTitle("X Title");//こちらはグラフの場合でも使える。(X) h->GetYaxis()->SetTitle("Y Title");//こちらはグラフの場合でも使える。(Y) gStyle->SetOptTitle(0);//Title を書かない場合、0を入れる(1を入れれば書いてくれる) (全体) </code> * 位置調整、装飾など( = の後の数字等はデフォルトの値) <code c_mac> //gStyle を使う gStyle->SetTitleColor(Color_t color = 1, Option_t* axis = "X"); gStyle->SetTitleFont(Style_t font = 62, Option_t* axis = "X"); gStyle->SetTitleOffset(Float_t offset = 1, Option_t* axis = "X"); gStyle->SetTitleSize(Float_t size = 0.02, Option_t* axis = "X"); //軸は"XYZ"のように複数選択することもできる。XYZ以外を入れると全体のTitleに対しての設定となる。(SetTitleOffset以外?) //他にも以下のようなものがある。(全体のTitle 用?) gStyle->SetTitleXOffset(Float_t offset = 1); gStyle->SetTitleYOffset(Float_t offset = 1); gStyle->SetTitleXSize(Float_t size = 0.02); gStyle->SetTitleYSize(Float_t size = 0.02); gStyle->SetTitleX(Float_t x = 0); //Title box(の左上角) の X 座標(Canvasの左下原点、0~1) gStyle->SetTitleY(Float_t y = 0.985); //Title box(の左上角) の Y 座標(Canvasの左下原点、0~1) gStyle->SetTitleW(Float_t w = 0); //Title box の幅 gStyle->SetTitleH(Float_t h = 0); //Title box の高さ gStyle->SetTitleAlign(Int_t a = 13); gStyle->SetTitleFillColor(Color_t color = 1); gStyle->SetTitleTextColor(Color_t color = 1); gStyle->SetTitleStyle(Style_t style = 1001); gStyle->SetTitleFontSize(Float_t size = 0); gStyle->SetTitleBorderSize(Width_t size = 2); //h->GetXaxis()から(Y軸も同じ) h->GetXaxis()->SetTitleOffset(1.2); h->GetYaxis()->SetTitleOffset(1.2); h->GetYaxis()->CenterTitle();//Title を中心に設定 </code> ---- ===== Label 関係 ===== *( = の後の数字等はデフォルトの値) <code c_mac> gStyle->SetLabelOffset(Float_t offset = 0.005, Option_t* axis = "X"); // 軸とラベルの距離 gStyle->SetLabelColor(Color_t color = 1, Option_t* axis = "X"); // ラベルの色 gStyle->SetLabelFont(Style_t font = 62, Option_t* axis = "X"); // ラベルのフォント gStyle->SetLabelSize(Float_t size = 0.04, Option_t* axis = "X"); // ラベルのサイズ //example gStyle->SetLabelOffset(0.001,"XY"); </code> *フォントについては  font = 10*fontnumber + precision で表される。 *fontnumber は1〜14までの数字でフォントを選択する。 *precision は 2:サイズ変更、回転可能 ,1:不能 *軸は "XY" のように複数同時に選択することもできる。 ---- ===== Grid 関係 ===== <code c_mac> gStyle->SetPadGridX(1);// グリッドの縦線を表示する(0を入れると非表示) gStyle->SetPadGridY(1);// グリッドの横線を表示する(0を入れると非表示) gStyle->SetGridStyle(Style_t style = 3); // グリッド線のスタイルを指定 gStyle->SetGridColor(Color_t color = 0); // グリッド線の色を指定 gStyle->SetGridWidth(Width_t width = 1); // グリッド線の線幅を指定(ピクセル単位) </code> ---- ===== 軸TitleがLabelと被ってしまうとき ===== 特にY軸でよく起こると思われる。 Canvasのサイズをいじれば解決することもあるが、それでもダメなとき。 * 解決法1:Titleをずらす h->GetYaxis()->SetTitleOffset(1.2)

ja/root/axis.1400655585.txt.gz · 最終更新: 2014/05/21 06:59 by kota