#include #include #include "TGraph.h" #include "TAxis.h" #include "TCanvas.h" #include "TRandom3.h" using std::vector; using Pdd=std::pair; void copyTGraphRange(TGraph& in, TGraph& out) { //out.GetXaxis()->SetRangeUser(in.GetXaxis()->GetXmin(),in.GetXaxis()->GetXmax()); //no effect *(out.GetXaxis())=*(in.GetXaxis()); out.GetYaxis()->SetRangeUser(in.GetYaxis()->GetXmin(),in.GetYaxis()->GetXmax()); //*(out.GetYaxis())=*(in.GetYaxis()); //no effect } Pdd randomUnitDisk() { double x=1.0; double y=1.0; while(x*x+y*y>1.0){ x=gRandom->Uniform(-1.0,1.0); y=gRandom->Uniform(-1.0,1.0); } return Pdd(x,y); } void axisRange() { vector xVec1,yVec1,xVec2,yVec2; for(int i=0;i<1000;i++){ auto p1=randomUnitDisk(); auto p2=randomUnitDisk(); xVec1.push_back(2.0*p1.first); yVec1.push_back(p1.second); xVec2.push_back(p2.first); yVec2.push_back(2.0*p2.second); } TGraph g1(1000,&xVec1[0],&yVec1[0]); TGraph g2(1000,&xVec2[0],&yVec2[0]); TCanvas canvas; g1.Draw("A*"); canvas.SaveAs("g1.png"); g2.Draw("A*"); canvas.SaveAs("g2.png"); copyTGraphRange(g1,g2); g2.Draw("A*"); canvas.SaveAs("g22.png"); }