ROOT学习——高斯随机生成二维直方图的两种画法(candledecay.C)

官方介绍:蜡烛衰变,说明了一定时间的发展。

下面给出具体代码步骤:

创建一个画板:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值