The following works for me:
{
c1 = new TCanvas("c1","Divide Example",800,400);
c1->SetLeftMargin(0.3);
c1->Divide(4,1,0,0);
auto g1 = new TGraph();
g1->AddPoint(1.,1.);
g1->AddPoint(2.,2.);
auto g2 = new TGraph();
g2->AddPoint(3.,1.);
g2->AddPoint(4.,2.);
auto g3 = new TGraph();
g3->AddPoint(5.,1.);
g3->AddPoint(6.,2.);
auto g4 = new TGraph();
g4->AddPoint(7.,1.);
g4->AddPoint(8.,2.);
c1->cd(1); g1->Draw("AL");
c1->cd(2); g2->Draw("AL");
c1->cd(3); g3->Draw("AL");
c1->cd(4); g4->Draw("AL");
auto l = new TLegend(0.008,0.35,0.9,0.6);
l->AddEntry(g1,"Legend 1");
l->AddEntry(g2,"Legend 2");
l->AddEntry(g3,"Legend 3");
l->AddEntry(g4,"Legend 4");
l->Draw();
c1->cd(1)->Update();
c1->cd(4)->Update();
g1->GetYaxis()->SetTitle("\\sigma/\\sigma_{SM}");
g4->GetXaxis()->SetTitle("\\mathscr{O}");
c1->cd(1)->Modified();
c1->cd(4)->Modified();
}