Y轴的零刻度对齐的方案:
方案一:
tickPositioner: function(){var maxDeviation = Math.ceil(Math. max(Math.abs(this.dataMax),Math.abs(this.dataMin))); var halfMaxDeviation = Math.ceil(maxDeviation / 2); return [-maxDeviation,-halfMaxDeviation,0,halfMaxDeviation,maxDeviation];
}
缺点:没有整数的坐标值,写死的坐标轴;
方案二:
var columnY = chart.yAxis[0].tickPositions,yoyY = chart.yAxis[1].tickPositions,columnStep = chart.yAxis[0].tickInterval,yoyStep = chart.yAxis[1].tickInterval,columnSeg = columnY.indexOf(0),yoySeg = yoyY.indexOf(0);
console.log(columnStep, yoyStep);
console.log(columnSeg, yoySeg);
if (yoySeg > columnSeg) {if (yoySeg - columnSeg <= 5) {chart.yAxis[0].setExtremes(-columnStep * yoySeg * yoySeg);} else {chart.yAxis[0].setExtremes(-columnStep * yoySeg * 10);}
} else {if (columnSeg - yoySeg <= 5) {chart.yAxis[1].setExtremes(-yoyStep * columnSeg * columnSeg);} else {chart.yAxis[1].setExtremes(-yoyStep * columnSeg * 10);}
}
缺点:实测难以控制坐标点的位置;
如有帮助,希望多多点赞,如果有好的方法,欢迎留言讨论。