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:color [GiriWiki]

ユーザ用ツール

サイト用ツール


ja:root:color

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
ja:root:color [2014/04/06 14:10]
kota [CreateGradientColorTable]
ja:root:color [2018/08/30 05:24] (現在)
kota [カラーバー(TPaletteAxis)]
ライン 21: ライン 21:
 </​code>​ </​code>​
  
-  * 使い方は、SetFillColor(kRed) , SetFillColor(kYellow-10) , SetLineColor(kMagenta+2) のように色名+数字で指定する +  * 色の指定の時に、SetFillColor(kRed) , SetFillColor(kYellow-10) , SetLineColor(kMagenta+2) のように色名+数字で指定する 
- +  * 実態はRTypes.hに記されていて、 
 +<code c_mac> 
 +enum EColor { kWhite =0,   ​kBlack =1,   ​kGray=920,​ 
 +              kRed   =632, kGreen =416, kBlue=600, kYellow=400,​ kMagenta=616,​ kCyan=432,​ 
 +              kOrange=800,​ kSpring=820,​ kTeal=840, kAzure =860, kViolet =880, kPink=900 }; 
 +</​code>​ 
 +のように各key wardが数字に対応している。
 ---- ----
- 
 ===== Fill Style (TAttFill) ===== ===== Fill Style (TAttFill) =====
  
ライン 93: ライン 97:
   * グラデーションを作る関数   * グラデーションを作る関数
   * 第1引数で区切り色の数を指定し、その間を第6引数の数の段数で連続的につなぐ   * 第1引数で区切り色の数を指定し、その間を第6引数の数の段数で連続的につなぐ
-  * RGB space区切り色数だけ点を打ち、それらを順番に線でつないでいき、その等間隔で拾ってきてグラデーションを作る+  * RGB空間NRGBs個の点を打ち、それらを順番に線でつないでいく。その線分上Ncont個取り出してグラデーションを作る(下の例)。
   * 第2〜第5引数は第1引数(Number)で指定された要素をもつ配列で、第2引数が各区切り色の場所を表す(0 ~ 1 で表す)   * 第2〜第5引数は第1引数(Number)で指定された要素をもつ配列で、第2引数が各区切り色の場所を表す(0 ~ 1 で表す)
   * 第3〜第5引数はRGBで、一般的なRGB value を255で割って規格化してある(0 ~ 1であらわされる)   * 第3〜第5引数はRGBで、一般的なRGB value を255で割って規格化してある(0 ~ 1であらわされる)
ライン 104: ライン 108:
  
 <code c_mac> <code c_mac>
-  const Int_t NRGBs = 5;    //​色の区切りの数+  const Int_t NRGBs = 5;    //​色の区切りの数(区切り色 = RGB空間に打たれた点のさす色)
   const Int_t NCont = 255;  //​グラデーションの段数   const Int_t NCont = 255;  //​グラデーションの段数
  
 //​グラデーションの色を配列で指定 //​グラデーションの色を配列で指定
-  Double_t stops[NRGBs] = { 0.00, 0.34, 0.61, 0.84, 1.00 }; //1行目はカラーバーでの位置(比率)、2~4行目それぞれR,G,B+  Double_t stops[NRGBs] = { 0.00, 0.34, 0.61, 0.84, 1.00 }; //stopはカラーバーでの位置(比率)。つまり区切りの色がくる場所。 
 +                                   //​Red、Green,​Blue各区切り位置でのR,G,Bの値(区切り色を指定)
   Double_t Red[NRGBs] ​  = { 0.00, 0.00, 0.87, 1.00, 0.51 }; //​RGBは一般的なRGBの値を255で割って規格化(?)している。   Double_t Red[NRGBs] ​  = { 0.00, 0.00, 0.87, 1.00, 0.51 }; //​RGBは一般的なRGBの値を255で割って規格化(?)している。
   Double_t Green[NRGBs] = { 0.00, 0.81, 1.00, 0.20, 0.00 }; //​縦に見る。カラーバーの位置0.00でのRGB=(0.00,​0.00,​0.51),​   Double_t Green[NRGBs] = { 0.00, 0.81, 1.00, 0.20, 0.00 }; //​縦に見る。カラーバーの位置0.00でのRGB=(0.00,​0.00,​0.51),​
ライン 126: ライン 131:
  
 ---- ----
 +
 +==== SetPalette ====
 +
 +  * 上と同じ2Dヒストを gStyle%%->​%%SetPalette(1) (上)と gStyle%%->​%%SetPalette(50) (下)で書いてみた。
 +
 +{{:​ja:​root:​grad2.png?​800|}}
 +
 +{{:​ja:​root:​grad3.png?​800|}}
 +
 +
 +  * 55 と 53 も使いやすそう
 +
 +
 +----
 +
 ==== デフォルトの色を変更する ==== ==== デフォルトの色を変更する ====
  
ライン 135: ライン 155:
   * 見難い色を変更することができる   * 見難い色を変更することができる
   * RGBの値(0~255)を255で割って規格化(?)   * RGBの値(0~255)を255で割って規格化(?)
 +
 +
 +----
 +===== カラーバー(TPaletteAxis) =====
 +  * "​colz"​オプションで2Dヒストグラムを描いたときの右側のカラーパレット
 +  * Draw後、TPaletteAxisを以下のようにしてとってくることが出来る。
 +
 +  h2->​Draw("​colz"​);​
 +  gPad->​Update();​
 +  TPaletteAxis *palette = (TPaletteAxis*)h2->​GetListOfFunctions()->​FindObject("​palette"​);​
 +  palette->​SetY2NDC(0.7);​ //​位置を変えたり、縮めたり
 +  ​
 +ラベルを消そうとして
 +  palette->​SetLabelSize(0);​
 +  palette->​SetLabelOffset(100);​
 +などやってみたがうまくいかず。
 +代わりに
 +  h2->​SetLabelSize(0);​
 +  h2->​SetLabelOffset(100);​
 +  h2->​SetTickLength(0,"​Z"​)
 +などはちゃんと動いた。
 +
 +
 +TColor はROOTのv5からv6に変わって、アップデートが多い所のように感じる。
 +用意されているパレットの中身については、TColorのsource (core/​base/​src/​TColor.cxx)の
 +TColor::​SetPaletteの関数の中身を読んでみるとそのパラメータが書いてある。
ja/root/color.1396793407.txt.gz · 最終更新: 2014/04/06 14:10 by kota