echart实现两个Y轴的0刻度线一致

博客提到在ECharts中,保证两条y轴的最大最小值绝对值一致,0刻度线会在同一水平线,可避免数据错乱,还给出了原文博客链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

option = {
  color: ['#87CEFA', '#FF8C00', '#D3D3D3'],
  tooltip: {
    trigger: 'axis',
    axisPointer: {
      type: 'cross',
      label: {
        backgroundColor: '#283b56',
      },
    },
  },
  legend: {
    data: ['交付达成项次', '平均交付天数'],
    bottom: 0,
  },
  toolbox: {
    show: false,
    feature: {
      dataView: {readOnly: false},
      restore: {},
      saveAsImage: {},
    },
  },
  dataZoom: {
    show: false,
    start: 0,
    end: 100,
  },
  xAxis: [
    {
      type: 'category',
      boundaryGap: true,
      data: (function () {
        var res = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
        return res;
      })(),
    },
  ],
  yAxis: [
    {
      type: 'value',
      scale: true,
      // min: 0,
      boundaryGap: [0.2, 0.2],
      splitLine: false,
      max: function (value) {
        if (Math.abs(value.max) > Math.abs(value.min)) {
          return (Math.abs(value.max) * 1.2).toFixed(2);
        } else {
          return (Math.abs(value.min) * 1.2).toFixed(2);
        }
      },
      min: function (value) {
        if (Math.abs(value.max) > Math.abs(value.min)) {
          return (-Math.abs(value.max) * 1.2).toFixed(2);
        } else {
          return (-Math.abs(value.min) * 1.2).toFixed(2);
        }
      },
    },
    {
      type: 'value',
      scale: true,
      boundaryGap: [0.2, 0.2],
      splitLine: false,
      max: function (value) {
        if (Math.abs(value.max) > Math.abs(value.min)) {
          return (Math.abs(value.max) * 1.2).toFixed(2);
        } else {
          return (Math.abs(value.min) * 1.2).toFixed(2);
        }
      },
      min: function (value) {
        if (Math.abs(value.max) > Math.abs(value.min)) {
          return (-Math.abs(value.max) * 1.2).toFixed(2);
        } else {
          return (-Math.abs(value.min) * 1.2).toFixed(2);
        }

      },
    }],
  series: [
    {
      name: '交付达成项次',
      type: 'bar',
      yAxisIndex: 1,
      data: (function () {
        var res = [0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0];
        return res;
      })(),
    },
    {
      name: '平均交付天数',
      type: 'line',
      data: (function () {
        var res = [0, 0, 0, 0, 0, 0, 0, 0, -9.73, -12.573333, 0, 0];
        return res;
      })(),
    },
  ],
};

效果图

如图所示,只要保证两条y轴的最大最小值绝对值一致,则0刻度线也会在同一水平线,这样不会导致数据错乱。

原文博客:https://blog.youkuaiyun.com/u014744118/article/details/81543012

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值