#include "TCanvas.h" #include "TPad.h" #include "TMultiGraph.h" #include "TGraph.h" #include "TGraphErrors.h" #include "TAxis.h" #include "TLegend.h" #include "TLatex.h" #include "TROOT.h" #include void coronatamp() { gStyle->SetOptFit(); const char *datain = "C:/coronatamp.txt"; const char *dataout = "C:/root_v6.20.00/coronatamp.png"; TCanvas *c01 = new TCanvas("c01","multigraph",1280,1024); c01->SetGrid(); float offx=1.3; float offy=1.3; float margr=0.08; float w=3; float margl=0.12; float line=2; float ymax=0.3; float ymin=0; float p03sub; gPad->SetLeftMargin(margl); gPad->SetRightMargin(margr); TGraphErrors *gamma = new TGraphErrors(datain,"%lg %lg"); gamma->SetMarkerColor(kBlue); gamma->SetLineColor(kBlue); gamma->SetMarkerStyle(3); gamma->SetMarkerSize(1.3); gamma->SetLineWidth(line); TPaveText *t=new TPaveText(0.7,0.15,0.75,0.2,"brNDC"); TF1 *g13sub = new TF1 ("m13sub", "gaus", 1, 30); g13sub->SetLineColor(kYellow); TF1 *g23sub = new TF1 ("m23sub", "gaus", 20,45); g23sub->SetLineColor(kGreen); TF1 *f13sub = new TF1("double_gaus3sub", "gaus(0) + gaus(3)", 1, 80); f13sub->SetParNames("Constant 1", "Mean 1", "Sigma 1","Constant 2", "Mean 2", "Sigma 2"); f13sub->SetLineColor(kRed); gamma->Fit(g13sub, "R"); gamma->Fit(g23sub, "R"); Double_t par3sub[6]; g13sub->GetParameters(&par3sub[0]); g23sub->GetParameters(&par3sub[3]); f13sub->SetParameters(par3sub); gamma->Fit(f13sub, "R"); gamma->Draw("e1"); g13sub->Draw("SAME"); g23sub->Draw("SAME"); f13sub->Draw("SAME"); f13sub->SetMaximum(ymax); //f13sub->SetMinimum(ymin); f13sub->SetRange(0.,80); f13sub->Draw(); gamma->Draw("PL"); // drow graph data on top of function //gamma->Draw("L"); f13sub->SetTitle("Covid-19 infections/swabs ratio in Italy, March 02-April 15 2020- Two Gaussian fit until May 20, 2020"); f13sub->GetXaxis()->SetTitle("Day since March 02, 2020"); f13sub->GetYaxis()->SetTitle("Infections/Swabs"); f13sub->GetYaxis()->SetTitleOffset(offy); f13sub->GetXaxis()->SetTitleOffset(offx); gamma->GetYaxis()->SetTitleOffset(offy); gamma->GetXaxis()->SetTitleOffset(offx); TLegend* leg = new TLegend(0.15, 0.75, .25, .85); leg->SetHeader("Legend"); leg->SetNColumns(1); leg->AddEntry(gamma, "Data", "lp"); leg->AddEntry(f13sub, "Two Gauusian Fit", "l"); leg->Draw(); //gPad->SetLogy(true); gPad->Update(); TPaveStats *stat = (TPaveStats*)(gamma->FindObject("stats")); if(stat ) { stat->SetTextColor(kRed); stat->SetX1NDC(0.85); stat->SetX2NDC(0.98); stat->SetY1NDC(0.79); stat->SetY2NDC(0.94); } gPad->Update(); t->AddText("Covid-19"); t->Draw(); gPad->Update(); c01->Print(dataout); }