echarts,highcharts图表双Y轴0刻度对齐的方案

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);
  }
}

缺点:实测难以控制坐标点的位置;

如有帮助,希望多多点赞,如果有好的方法,欢迎留言讨论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值