function axis_equal_plt(w, h, domain, p)
{
const screen = ({w: w, h: h, p:p, w_eff:(w-p.left-p.right), h_eff:(h-p.bottom-p.top)})
const ratio_domain = domain.w / domain.h
const ratio_screen = (screen.w_eff) / (screen.h_eff)
if( ratio_domain > ratio_screen ){
var weff = screen.w_eff
var heff = screen.w_eff / ratio_domain
}
else {
var weff = screen.h_eff * ratio_domain
var heff = screen.h_eff
}
const area = {w:weff + p.left + p.right , h:heff + p.top + p.bottom,
weff:weff, heff:heff}
return ({screen:screen,
area:area,
y:
d3.scaleLinear().domain([domain.y, domain.y + domain.h]).range([area.h - screen.p.bottom, screen.p.top]),
x:
d3.scaleLinear().domain([domain.x, domain.x + domain.w]).range([screen.p.left, area.w - screen.p.right])
});
}