Y Scale domain adjustment algorithm

Add API endpoint to provide custom y scale domain adjustment algorithm based on new x scale domain.

Close #1079.
`changedScale` and `adjustingScale` are confusing names, could you name it more explicitly? also typing is not fully explicit