#include #include #include #include #include #include "TFile.h" #include "Riostream.h" #include #include #include "TF1.h" #include "TH1D.h" #include "TH2D.h" #include "TFile.h" #include "TGraph2D.h" #include "TCanvas.h" #include "TLegend.h" #include "TProfile.h" #include "TStyle.h" #include "TColor.h" #include "TLatex.h" #include "TAttFill.h" #include "TGraphErrors.h" #include "TGraph.h" #include "TAttMarker.h" using std::cout; using std::endl; using std::getline; using std::stringstream; void gaus() { TH1F *h[3][5]; TH1F *li[2]; for(int ilin=0;ilin<2;ilin++){li[ilin] = new TH1F("asdqw","",32,0,32);} for(int ii=0;ii<3;ii++) { for(int jj=0;jj<5;jj++) { string hora; if(ii==0){hora="7 AM";} else if(ii==1){hora="1 PM";} else if(ii==2){hora="6 PM";} //if(jj==0){h[ii][jj] = new TH1F("asd",Form("Aeropuerto Antonio Narino %s",hora.c_str()),32,0,1.1);} //if(jj==1){h[ii][jj] = new TH1F("asdasd",Form("Bombona %s",hora.c_str()),32,0,1.1);} if(jj==2){ if(ii==1){h[ii][jj] = new TH1F("asdqw",Form("Botana %s 6.98 Km from Observation point",hora.c_str()),32,0,32);} else {h[ii][jj] = new TH1F("asdqw",Form("Botana %s",hora.c_str()),32,0,32);} } if(jj==3){ if(ii==1){h[ii][jj] = new TH1F("asdwe",Form("El Encano %s 7.78 Km from Observation point",hora.c_str()),32,0,32);} else {h[ii][jj] = new TH1F("asdwe",Form("El Encano %s",hora.c_str()),32,0,32);} } if(jj==4){ if(ii==1){h[ii][jj] = new TH1F("asder",Form("Obonuco %s 8.82 Km from Observation point",hora.c_str()),32,0,32);} else {h[ii][jj] = new TH1F("asder",Form("Obonuco %s",hora.c_str()),32,0,32);} } } } //string titulo="Temperature (c)"; ifstream inp; string line; inp.open("datos2.csv"); int count=1; while(getline(inp, line)) // To get you all the lines. { if (!inp.good()) { //input failure, leave the loop break; } //getline(inp, line); stringstream linestream(line); double tempvalue; string date, time, tempvaluestr; int station; getline(linestream, date, '\t'); getline(linestream, time, '\t'); getline(linestream, tempvaluestr, '\t'); tempvalue = std::stod(tempvaluestr); linestream >> station; char datechar[date.size()+1]; strcpy(datechar,date.c_str()); //string blanko=" "; //char blankkk[blanko.size()+1]; //strcpy(blankkk,blanko.c_str()); stringstream blankkk; blankkk.str(""); //cout << datechar <<" "<< time <<" "<< tempvalue <<" "<< station <<" "<Fill(datechar,tempvalue); h[0][0]->SetBinError(h[0][0]->GetXaxis()->FindFixBin(datechar),0.0001); //h[0][0]->SetError(0); }*/ /*if(station==52055030) { //const char* a=date; h[0][1]->Fill(datechar,tempvalue); h[0][1]->SetBinError(h[0][1]->GetXaxis()->FindFixBin(datechar),0.0001); //h[0][1]->SetError(0); }*/ if(station==52055210) { //const char* a=date; h[0][2]->Fill(datechar,tempvalue); h[0][2]->SetBinError(h[0][2]->GetXaxis()->FindFixBin(datechar),0.0001); if(date!="15/12/2019" && date!="31/12/2019" && date!="15/01/2020"){h[0][2]->GetXaxis()->SetBinLabel(h[0][2]->GetXaxis()->FindFixBin(datechar),blankkk.str().c_str());} //h[0][2]->SetError(0); } if(station==47015100) { //const char* a=date; h[0][3]->Fill(datechar,tempvalue); h[0][3]->SetBinError(h[0][3]->GetXaxis()->FindFixBin(datechar),0.0001); if(date!="15/12/2019" && date!="31/12/2019" && date!="15/01/2020"){h[0][3]->GetXaxis()->SetBinLabel(h[0][3]->GetXaxis()->FindFixBin(datechar),blankkk.str().c_str());} //h[0][3]->SetError(0); } if(station==52045010) { //const char* a=date; h[0][4]->Fill(datechar,tempvalue); h[0][4]->SetBinError(h[0][4]->GetXaxis()->FindFixBin(datechar),0.0001); if(date!="15/12/2019" && date!="31/12/2019" && date!="15/01/2020"){h[0][4]->GetXaxis()->SetBinLabel(h[0][4]->GetXaxis()->FindFixBin(datechar),blankkk.str().c_str());} //h[0][4]->SetError(0); } } else if(time=="1:00:00 PM") { cout << datechar <<" "<< time <<" "<< tempvalue <<" "<< station <<" "<Fill(datechar,tempvalue); h[1][0]->SetBinError(h[1][0]->GetXaxis()->FindFixBin(datechar),0.0001); } if(station==52055030) { //const char* a=date; h[1][1]->Fill(datechar,tempvalue); h[1][1]->SetBinError(h[1][1]->GetXaxis()->FindFixBin(datechar),0.0001); }*/ if(station==52055210) { //const char* a=date; h[1][2]->Fill(datechar,tempvalue); h[1][2]->SetBinError(h[1][2]->GetXaxis()->FindFixBin(datechar),0.0001); if(date!="15/12/2019" && date!="31/12/2019" && date!="15/01/2020"){h[1][2]->GetXaxis()->SetBinLabel(h[1][2]->GetXaxis()->FindFixBin(datechar),blankkk.str().c_str());} } if(station==47015100) { //const char* a=date; h[1][3]->Fill(datechar,tempvalue); h[1][3]->SetBinError(h[1][3]->GetXaxis()->FindFixBin(datechar),0.0001); if(date!="15/12/2019" && date!="31/12/2019" && date!="15/01/2020"){h[1][3]->GetXaxis()->SetBinLabel(h[1][3]->GetXaxis()->FindFixBin(datechar),blankkk.str().c_str());} } if(station==52045010) { //const char* a=date; h[1][4]->Fill(datechar,tempvalue); h[1][4]->SetBinError(h[1][4]->GetXaxis()->FindFixBin(datechar),0.0001); if(date!="15/12/2019" && date!="31/12/2019" && date!="15/01/2020"){h[1][4]->GetXaxis()->SetBinLabel(h[1][4]->GetXaxis()->FindFixBin(datechar),blankkk.str().c_str());} } } else if(time=="6:00:00 PM") { /*if(station==52045020) { //const char* a=date; h[2][0]->Fill(datechar,tempvalue); h[2][0]->SetBinError(h[2][0]->GetXaxis()->FindFixBin(datechar),0.0001); } if(station==52055030) { //const char* a=date; h[2][1]->Fill(datechar,tempvalue); h[2][1]->SetBinError(h[2][1]->GetXaxis()->FindFixBin(datechar),0.0001); }*/ if(station==52055210) { //const char* a=date; h[2][2]->Fill(datechar,tempvalue); h[2][2]->SetBinError(h[2][2]->GetXaxis()->FindFixBin(datechar),0.0001); if(date!="15/12/2019" && date!="31/12/2019" && date!="15/01/2020"){h[2][2]->GetXaxis()->SetBinLabel(h[2][2]->GetXaxis()->FindFixBin(datechar),blankkk.str().c_str());} } if(station==47015100) { //const char* a=date; h[2][3]->Fill(datechar,tempvalue); h[2][3]->SetBinError(h[2][3]->GetXaxis()->FindFixBin(datechar),0.0001); if(date!="15/12/2019" && date!="31/12/2019" && date!="15/01/2020"){h[2][3]->GetXaxis()->SetBinLabel(h[2][3]->GetXaxis()->FindFixBin(datechar),blankkk.str().c_str());} } if(station==52045010) { //const char* a=date; h[2][4]->Fill(datechar,tempvalue); h[2][4]->SetBinError(h[2][4]->GetXaxis()->FindFixBin(datechar),0.0001); if(date!="15/12/2019" && date!="31/12/2019" && date!="15/01/2020"){h[2][4]->GetXaxis()->SetBinLabel(h[2][4]->GetXaxis()->FindFixBin(datechar),blankkk.str().c_str());} } } if((count%3)==0 && station==52055210) { li[0]->Fill(datechar,9); li[0]->SetBinError(li[0]->GetXaxis()->FindFixBin(datechar),0.0001); li[1]->Fill(datechar,14); li[1]->SetBinError(li[0]->GetXaxis()->FindFixBin(datechar),0.0001); } } THStack *hs = new THStack("hs",""); //gStyle->SetPalette(kRainBow); for(int jjj=2;jjj<5;jjj++) { for(int iii=0;iii<3;iii++) { if(iii==0){ /* h[jjj][iii]->SetFillColor(kBlue); h[jjj][iii]->SetMarkerStyle(21); h[jjj][iii]->SetMarkerColor(kBlue); //h[0][iii]->SetErrorX(0); */ h[iii][jjj]->SetMarkerStyle(21); if(jjj==2){h[iii][jjj]->SetMarkerColor(kRed); h[iii][jjj]->SetFillColor(kRed);} else if(jjj==3){h[iii][jjj]->SetMarkerColor(kGray); h[iii][jjj]->SetFillColor(kGray);} else if(jjj==4){h[iii][jjj]->SetMarkerColor(kYellow); h[iii][jjj]->SetFillColor(kYellow);} hs->Add(h[iii][jjj]); } if(iii==1) { /* h[jjj][iii]->SetFillColor(kYellow); h[jjj][iii]->SetMarkerStyle(21); h[jjj][iii]->SetMarkerColor(kYellow); //h[0][iii]->SetErrorX(0); */ h[iii][jjj]->SetMarkerStyle(21); if(jjj==2){h[iii][jjj]->SetMarkerColor(kCyan); h[iii][jjj]->SetFillColor(kCyan);} else if(jjj==3){h[iii][jjj]->SetMarkerColor(kViolet); h[iii][jjj]->SetFillColor(kViolet);} else if(jjj==4){h[iii][jjj]->SetMarkerColor(kGreen); h[iii][jjj]->SetFillColor(kGreen);} hs->Add(h[iii][jjj]); } if(iii==2) { /* h[jjj][iii]->SetFillColor(kBlack); h[jjj][iii]->SetMarkerStyle(21); h[jjj][iii]->SetMarkerColor(kBlack); */ h[iii][jjj]->SetMarkerStyle(21); if(jjj==2){h[iii][jjj]->SetMarkerColor(kBlue); h[iii][jjj]->SetFillColor(kBlue);} else if(jjj==3){h[iii][jjj]->SetMarkerColor(kOrange); h[iii][jjj]->SetFillColor(kOrange);} else if(jjj==4){h[iii][jjj]->SetMarkerColor(kBlack); h[iii][jjj]->SetFillColor(kBlack);} hs->Add(h[iii][jjj]); } } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////// TCanvas *cs = new TCanvas("cs","cs",10,10,2000,900); gStyle->SetOptStat(1); gPad->SetGrid(); hs->SetMinimum(1); hs->Draw("nostackbs"); hs->GetYaxis()->SetTitle("Temperature (c°)"); //gPad->BuildLegend(); hs->Add(li[0]); hs->Add(li[1]); }