Multigraph tutorial


The Canvas

To begin with, we must create a canvas on which to put our multigraph (which we will create using the class TMultiGraph).

In [1]:
TCanvas c1("c1","multigraph",700,500);
c1.SetGrid();
TMultiGraph mg("mg","mg");

Graph 1

We then create our first graph.

In [2]:
std::vector<double> px1 {-0.1, 0.05, 0.25, 0.35, 0.5, 0.61,0.7,0.85,0.89,0.95};
std::vector<double> py1 {-1,2.9,5.6,7.4,9,9.6,8.7,6.3,4.5,1};
std::vector<double> ex1 {.05,.1,.07,.07,.04,.05,.06,.07,.08,.05};
std::vector<double> ey1 {.8,.7,.6,.5,.4,.4,.5,.6,.7,.8};
const Int_t n1 = px1.size();
TGraphErrors gr1(n1,px1.data(),py1.data(),ex1.data(),ey1.data());
gr1.SetMarkerColor(kBlue);
gr1.SetMarkerStyle(21);
mg.Add(&gr1);

Graph 2

We then create our second one.

In [3]:
std::vector<float> x2 {-0.28, 0.005, 0.19, 0.29, 0.45, 0.56,0.65,0.80,0.90,1.01};
std::vector<float> y2 {2.1,3.86,7,9,10,10.55,9.64,7.26,5.42,2};
std::vector<float> ex2 {.04,.12,.08,.06,.05,.04,.07,.06,.08,.04};
std::vector<float> ey2 {.6,.8,.7,.4,.3,.3,.4,.5,.6,.7};
const Int_t n2 = x2.size();
TGraphErrors gr2(n2,x2.data(),y2.data(),ex2.data(),ey2.data());
gr2.SetMarkerColor(kRed);
gr2.SetMarkerStyle(20);
mg.Add(&gr2);

End Product

We add the two graphs onto our canvas, and update it.

In [4]:
mg.Draw("APL");
mg.GetXaxis()->SetTitle("X values");
mg.GetYaxis()->SetTitle("Y values");

We finally display the canvas.

In [5]:
%jsroot on
c1.Draw()