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

ユーザ用ツール

サイト用ツール


ja:root:wantto15

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



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

====== 1次元ヒストグラムを描いた後、フレームの最大値・最小値を知りたい ====== ---- 例えばヒストグラムを描いた後に、1σのところにフレームいっぱいに縦に線をいれたい、とする。 そうした時にヒストグラムのフレームの上限、下限の値が知りたいが、それはヒストグラムのエントリー数によっても変わるし、 Y軸がリニアかログかでも変わる。その辺をうまくやる方法が、 <code cpp> Double_t TPad::GetUymin(); Double_t TPad::GetUymax(); </code> を使うこと。(GetUxminなんかもある)\\ ただし、Logの場合は常用対数値で返ってくるので、TMath::Power(10,val)のように一段かませてやることが必要。 また、hist->GetYaxis()->GetXmax() でできるかと思い試してみたが、1が返ってきてうまくいかなかった。 ちなみにTPad::GetX1(), TPad::GetY2() などは、Canvasの端でのX,Yの値を返してくれるよう。 注意点は、\\ ** GetUymin()等を呼ぶ前にTPad::Update()を呼んでやる**\\ ことが必要で、これをしないと値が更新されない。 以下例 <code c++> { TCanvas *c = new TCanvas("c","c",800,600); TH1D *hist = new TH1D("hist","gaussian",100,-5,5); hist->FillRandom("gaus",100000); hist->Draw(); //gPad->SetLogy();///// option gPad->Update();///// gPad->SetLogy()よりも後で呼んでやる必要がある ///// ///// ///// Draw lines ///// ///// ///// TLine *line = new TLine(); line->SetLineWidth(3); line->SetLineColor(kRed); Double_t Ymin, Ymax; if( gPad->GetLogy() ){ ///// Logarithmic axis Ymin = TMath::Power( 10, gPad->GetUymin() ); Ymax = TMath::Power( 10, gPad->GetUymax() ); }else{ ///// Linear axis Ymin = gPad->GetUymin(); Ymax = gPad->GetUymax(); } line->DrawLine(-1, Ymin, -1, Ymax); line->DrawLine( 1, Ymin, 1, Ymax); } </code> {{:ja:root:スクリーンショット_2018-08-03_13.51.56.png?800|}}

ja/root/wantto15.1533522609.txt.gz · 最終更新: 2018/08/06 02:30 by kota