Open4
Jupyter上のROOTでTMath::Landauが描けない
症状
Jupyter lab上のROOTでLandau分布が描けない.
次のようなコードをセルに書いて実行するとスクリーンショットのように四角い枠だけが表示される.
%jsroot on
TCanvas *cv = new TCanvas("cv", "cv", 800, 600);
cv->SetGridx();
cv->SetGridy();
cv->SetTicks();
cv->cd();
TF1 *f1 = new TF1("f1","[0]*TMath::Landau(x,[1],[2])",0,1);
f1->SetParameters(1,0,0.3);
f1->Draw();
cv->Draw();
TF1 *f1 = new TF1("f1","landau",0,1);
としても結果は同じ.
環境
- MacBook Pro (13-inch, 2019, Four Thunderbolt 3 ports)
- macOS 10.15.7
- ROOT Version: 6.24/00
gausは問題なく表示される.
TF1 *f1 = new TF1("f1","gaus",-1,1);
f1->SetParameters(1,0,0.3);
f1->Draw();
cv->Draw();
jsroot
をoffにすると表示される.
→ jsroot
の問題らしい.
これはいける.
Double_t landau(Double_t *x, Double_t *param) {
return param[0] * TMath::Landau(x[0], param[1], param[2]);
}
TF1 *f1 = new TF1("f1",landau,0,50,3);
f1->SetParameters(1,10,2);
f1->Draw();
cv->Draw();