| 
                
                  |  chatGPT答: | 8v6.cn |  在C++中使用ROOT框架绘制两个图并将它们一起显示,可以使用TCanvas类的Divide方法。下面是一个示例代码:
cpp
Copy code
#include <iostream>
#include "TCanvas.h"
#include "TH1F.h"
#include "TRandom.h"
void drawTwoHistogramsTogether() {
    // 创建一个TCanvas对象,并命名为c1
    TCanvas *c1 = new TCanvas("c1", "Two Histograms Together", 800, 600);
    // 将TCanvas分成1行2列的子画布
    c1->Divide(2, 1);
    // 生成第一个直方图h1
    TH1F *h1 = new TH1F("h1", "Histogram 1", 100, -5, 5);
    for (int i = 0; i < 1000; ++i) {
        h1->Fill(gRandom->Gaus(0, 1));
    }
    // 生成第二个直方图h2
    TH1F *h2 = new TH1F("h2", "Histogram 2", 100, -5, 5);
    for (int i = 0; i < 1000; ++i) {
        h2->Fill(gRandom->Gaus(2, 1));
    }
    // 在子画布1上绘制第一个直方图
    c1->cd(1);
    h1->Draw();
    // 在子画布2上绘制第二个直方图
    c1->cd(2);
    h2->Draw();
    // 更新TCanvas,使其显示所有内容
    c1->Update();
}
要运行上述代码,需要在ROOT环境中编译和执行。可以将代码保存为drawTwoHistogramsTogether.cpp,然后在ROOT中执行以下命令:
scss
Copy code
.L drawTwoHistogramsTogether.cpp
drawTwoHistogramsTogether()
这将在一个TCanvas中绘制两个一维直方图,分别位于子画布1和子画布2上。基于2023发布的GPT-4
 |