please show the code of creating a histogram in ROOT
时间: 2023-08-31 16:26:33 浏览: 73
### 回答1:
在ROOT中创建直方图的代码如下:
```
#include <TH1D.h>
#include <TCanvas.h>
#include <TRandom.h>
void histogram() {
TH1D *h = new TH1D("h", "Example Histogram", 100, -4, 4);
TRandom r;
for (int i = 0; i < 10000; i++) {
h->Fill(r.Gaus(0, 1));
}
TCanvas *c = new TCanvas("c", "Example Histogram", 800, 600);
h->Draw();
c->SaveAs("histogram.pdf");
}
```
这段代码创建了一个名为"h"的1维直方图,包含了100个柱子,数据范围在-4到4之间。然后使用TRandom生成了10000个高斯分布的随机数,并将它们填入直方图。最后,创建了一个TCanvas,将直方图绘制到画布上,并将画布保存为PDF文件。
### 回答2:
在ROOT中创建直方图的代码可以通过以下步骤实现:
首先,我们需要在程序中导入必要的文件以使用ROOT的相关功能。代码如下所示:
```cpp
#include <TH1.h>
#include <TCanvas.h>
#include <TROOT.h>
#include <TRandom.h>
```
接下来,我们需要创建一个TCanvas对象,它将用于显示直方图。代码如下所示:
```cpp
TCanvas *c1 = new TCanvas("c1", "Histogram", 800, 600);
c1->SetFillColor(kWhite);
```
然后,我们可以定义并填充直方图。在本例中,我们将使用随机数生成器来填充一个100个数的直方图。代码如下所示:
```cpp
TH1F *histogram = new TH1F("histogram", "Example Histogram", 100, 0, 100);
TRandom random;
for (int i = 0; i < 100; i++) {
double value = random.Gaus(50, 10); // 使用高斯分布生成随机数
histogram->Fill(value);
}
```
接下来,我们可以设置直方图的各种属性,例如标题、坐标轴名称和线条颜色等。代码如下所示:
```cpp
histogram->SetTitle("Example Histogram");
histogram->GetXaxis()->SetTitle("x");
histogram->GetYaxis()->SetTitle("Counts");
histogram->SetLineColor(kBlue);
```
最后,我们可以使用c1对象来在屏幕上绘制直方图。代码如下所示:
```cpp
histogram->Draw();
c1->Update();
```
以上就是在ROOT中创建直方图的代码示例。你可以根据需要进一步修改和扩展此代码,以满足你的具体需求。
### 回答3:
在ROOT中创建直方图的代码如下:
```cpp
#include <TH1F.h>
#include <TCanvas.h>
void createHistogram() {
// 创建一个直方图对象
TH1F *histogram = new TH1F("histogram", "Histogram", 100, 0, 10);
// 向直方图中添加数据点
histogram->Fill(2);
histogram->Fill(4);
histogram->Fill(5);
histogram->Fill(7);
// 创建一个画布对象
TCanvas *canvas = new TCanvas("canvas", "Histogram Canvas", 800, 600);
// 将直方图绘制在画布上
histogram->Draw();
// 显示画布
canvas->Draw();
}
```
首先,我们使用`TH1F`类创建了一个名为`histogram`的直方图对象,它有100个bin,范围从0到10。然后,通过`Fill()`函数向直方图添加了数据点,这里添加了4个数据点:2、4、5和7。
接下来,我们创建了一个名为`canvas`的画布对象,它的尺寸为800x600像素。我们使用`Draw()`函数将直方图绘制在画布上,然后使用`Draw()`函数将画布显示出来。
这段代码实现了在ROOT中创建直方图的基本操作,你可以根据实际需求调整直方图的参数和数据点。