Hi Caius,
See the script example below
You can also use the context menu item TPad::setFixAspectRatio
Rene Brun
{
gROOT->Reset();
//method1. compute ymax to get a commensurate range
// 1 pixel must correspond to the same range in x and y
TCanvas c1("c1","c1",10,10,800,600);
Float_t xmin = 0;
Float_t xmax = 20;
Float_t ymin = -2;
Int_t npx = gPad->GetWw();
Int_t npy = gPad->GetWh();
Float_t ymax = ymin + (xmax-xmin)*npy/npx;
TH2F h("h","",20,xmin,xmax,20,ymin,ymax);
h.Draw();
TArc a1(6,4,6);
a1.Draw();
//method2. set a square virtual canvas size in a non-square canvas
TCanvas c2("c2","c2",200,50,800,600);
c2.SetCanvasSize(700,700);
c2.DrawFrame(0,0,20,20);
TArc a2(10,10,10);
a2.Draw();
}
Caius Howcroft wrote:
>
> Hi,
>
> This is something that has bothered me quite a few times. I assume there
> must be an easy way of doing it, as it seems to be the kind of thing that
> one might want to do quite often.
>
> I want to draw a a histogram/collection of points (hits in a detector). I
> want to lock the relative scale of the x/y (and maybe z) axis so the event
> always appears in the correct proportions. Is there any neat way of doing
> this?
>
> It would also be neat to be able to zoom keeping the event correctly
> scaled.
>
> Sorry, probably a dumb question.
>
> Cheers
> Caius
>
> ________________________________________
> - CAIUS HOWCROFT -
> - +44 (0)1223 764 128 UK(office) -
> ========================================
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:08 MET