Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
hist008_TH1_zoom.C
Go to the documentation of this file.
1/// \file
2/// \ingroup tutorial_hist
3/// \notebook -js
4/// Changing the Range on the X-Axis of a Histogram
5///
6/// Image produced by `.x ZoomHistogram.C`
7///
8/// This demonstrates how to zoom into a histogram by
9/// changing the range on one of the axes (or both).
10///
11/// \macro_image
12/// \macro_code
13///
14/// \date November 2024
15/// \author Advait Dhingra
16
17void hist008_TH1_zoom()
18{
19 // Create and fill a histogram
20 TH1F *orig = new TH1F("Normal Histogram", "Normal Histogram", 100, 0, 100);
21
22 TRandom3 rng;
23 for (int i = 0; i < 1000; ++i) {
24 double x = rng.Gaus(50, 10);
25 orig->Fill(x);
26 }
27
28 // Clone the histogram into one called "zoom"
29 TH1F *zoom = static_cast<TH1F *>(orig->Clone("zoom"));
30 zoom->SetTitle("Zoomed-in Histogram");
31 // "Zoom" in the histogram by setting a new range to the X axis
32 zoom->GetXaxis()->SetRangeUser(50, 100);
33
34 // Draw both histograms to a canvas
35 TCanvas *c1 = new TCanvas("c1", "Histogram", 1500, 700);
36 // split the canvas horizontally in 2
37 int nsubdivX = 2;
38 int nsubdivY = 1;
39 c1->Divide(nsubdivX, nsubdivY);
40
41 c1->cd(1);
42 orig->Draw();
43 c1->cd(2);
44 zoom->Draw();
45}
virtual void SetRangeUser(Double_t ufirst, Double_t ulast)
Set the viewing range for the axis from ufirst to ulast (in user coordinates, that is,...
Definition TAxis.cxx:1084
The Canvas class.
Definition TCanvas.h:23
1-D histogram with a float per channel (see TH1 documentation)
Definition TH1.h:634
void SetTitle(const char *title) override
Change/set the title.
Definition TH1.cxx:6734
TAxis * GetXaxis()
Definition TH1.h:336
virtual Int_t Fill(Double_t x)
Increment bin with abscissa X by 1.
Definition TH1.cxx:3333
void Draw(Option_t *option="") override
Draw this histogram with options.
Definition TH1.cxx:3055
TObject * Clone(const char *newname="") const override
Make a complete copy of the underlying object.
Definition TH1.cxx:2741
Random number generator class based on M.
Definition TRandom3.h:27
virtual Double_t Gaus(Double_t mean=0, Double_t sigma=1)
Samples a random number from the standard Normal (Gaussian) Distribution with the given mean and sigm...
Definition TRandom.cxx:275
return c1
Definition legend1.C:41
Double_t x[n]
Definition legend1.C:17