Эта функциональность не поддерживается в Highcarts по умолчанию, но вы можете добавить ее, обернув drag
метод из прототипа Pointer, например:
(function(H) {
H.wrap(H.Pointer.prototype, 'drag', function(proceed, e) {
var chartX = e.chartX,
chartY = e.chartY,
mouseDownX = this.mouseDownX,
mouseDownY = this.mouseDownY,
rectX = Math.abs(chartX - mouseDownX),
rectY = Math.abs(chartY - mouseDownY);
if (rectX > rectY) {
e.chartY = chartY + (
mouseDownY > chartY ?
-(rectX - rectY) :
(rectX - rectY)
);
} else {
e.chartX = chartX + (
mouseDownX > chartX ?
-(rectY - rectX) :
(rectY - rectX)
);
}
proceed.apply(this, Array.prototype.slice.call(arguments, 1));
});
}(Highcharts));
Live demo: https://jsfiddle.net/BlackLabel/aubkLt5o/
Справочник по API: https://www.highcharts.com/docs/extending-highcharts/extending-highcharts