官方介绍:蜡烛衰变,说明了一定时间的发展。
下面给出具体代码步骤:
创建一个画板:
auto c1 = new TCanvas("c1","Candle Decay",800,600);
将画板竖切为两半:
c1->Divide(2,1);
新建一个随机变量:
auto rng = new TRandom();
新建一个二维直方图:
auto h1 = new TH2I("h1","Decay",1000,0,1000,20,0,20);
生成1百万个随机数填充直方图:
float myRand;
for (int i = 0; i < 19; i++) {
for (int j = 0; j < 1000000; j++) {
myRand = rng->Gaus(350+i*8,20+2*i);
h1->Fill(myRand,i);
}
}
设置条宽:
h1->SetBarWidth(3);
设置填充类型:
h1->SetFillStyle(0);
设置填充颜色:
h1->SetFillColor(kGray);
设置线段颜色:
h1->SetLineColor(kBlue);
设置y轴标题:
h1->GetYaxis()->SetTitle("time");
设置x轴标题:
h1->GetXaxis()->SetTitle("probability density");
将c1绘制在画板左边:
c1->cd(1);
h1->Draw("violiny(112000000)");
克隆h1为h2绘制在画板右边:
c1->cd(2);
auto h2 = (TH2I*)h1->Clone("h2");
h2->SetBarWidth(0.8);
h2->DrawCopy("candley2");
代码地址:https://github.com/root-project/root/blob/master/tutorials/hist/candledecay.C