#include "axis.h" #include "TCanvas.h" #include "TStyle.h" #include "TH1.h" #include "TRandom.h" #include "TGaxis.h" #include "TExec.h" //TGaxis* axis = nullptr; /* void draw_axis() { axis = new TGaxis(gPad->GetUxmax(), gPad->GetUymin(), gPad->GetUxmax(), gPad->GetUymax(), 0, 11000, 510, "+L"); axis->SetLineColor(kRed); axis->SetLabelColor(kRed); //axis->Draw(); } */ void twoscales() { TCanvas* c1 = new TCanvas("c1", "hists with different scales", 600, 400); // creat/fill draw h1 gStyle->SetOptStat(kFALSE); TH1F* h1 = new TH1F("h1", "my histogram", 100, -3, 3); for (int i = 0; i < 10000; ++i) h1->Fill(gRandom->Gaus(0, 1)); h1->Draw(); c1->Update(); // creat hint1 filled with the bins integral of h1 TH1F* hint1 = new TH1F("hint1", "h1 bins integral", 100, -3, 3); Float_t sum = 0; for (int i = 1; i <= 100; i++) { sum += h1->GetBinContent(i); hint1->SetBinContent(i, sum); } // scale hint1 to the pad coordinates Float_t rightmax = 1.1 * hint1->GetMaximum(); Float_t scale = gPad->GetUymax() / rightmax; hint1->SetLineColor(kRed); hint1->Scale(scale); hint1->Draw("same"); // axis = new TGaxis(); // TExec* draw_axis = new TExec("draw_axis", "draw_axis()"); // draw_axis->Draw(); c1->Update(); // draw an axis on the right side TGaxis* axis = new TGaxis(gPad->GetUxmax(), gPad->GetUymin(), gPad->GetUxmax(), gPad->GetUymax(), 0, rightmax, 510, "+L"); axis->SetLineColor(kRed); axis->SetLabelColor(kRed); axis->Draw(); c1->Update(); }