使用echarts画双y轴图表并解决分割线对齐问题

1,925 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第29天,点击查看活动详情


写在前面

本篇文章中介绍使用echarts画双y轴图表并解决分割线对齐问题。

画双y轴图表

使用echarts画双y轴图表的关键是设置yAxis为一个数组[],数组中的每一个对象表示一个y轴,下面是一个简单的双坐标轴的例子,每个字段表示的意思都注释的很清楚:

image.png

此时会发现双y轴的分割线是混乱的,这样肯定是过不了设计那关的,下面就是对应的解决方法。

      let option = {
        color: ['#00E4FE', '#FFD700'],
        tooltip: {
          trigger: 'axis'
        },
        xAxis: {
          data: ["0h", "04h", "08h", "12h", "16h", "20h", "24h"],
          boundaryGap: false, // x轴两边是否留白
          // 坐标轴轴线
          axisLine: {
            lineStyle: {
              color: '#fff',
              opacity: 0.6
            }
          },
          // 坐标轴刻度
          axisTick: {
            show: false
          },
          // 坐标轴文本
          axisLabel: {
            show: true,
            color: "rgba(255, 255, 255, 0.6)"
          }
        },
        yAxis: [{
          // 坐标轴分割线
          splitLine: {
            lineStyle: {
              color: ['#fff'],
              opacity: 0.1
            }
          },
          // 坐标轴文本
          axisLabel: {
            show: true,
            color: "rgba(255, 255, 255, 0.6)"
          },
          name: "mg/L",
          nameTextStyle: {
            color: "#FFFFFF",
            opacity: 0.6,
          },
        }, {
          // 坐标轴分割线
          splitLine: {
            lineStyle: {
              color: ['#fff'],
              opacity: 0.1
            }
          },
          // 坐标轴文本
          axisLabel: {
            show: true,
            color: "rgba(255, 255, 255, 0.6)"
          },
        }],
        grid: {
          top: '12%',
          left: '12%',
          right: '26px',
          bottom: '14%'
        },
        series: [
          {
            name: '余氯',
            type: 'line',
            data: [0.48, 0.56, 0.50, 0.56, 0.60, 0.56, 0.48],
            showSymbol: false,
            smooth: true,
          },
          {
            name: 'ph',
            type: 'line',
            data: [7.1, 7.3, 7.5, 7.3, 7.0, 7.29, 7.51],
            showSymbol: false,
            smooth: true,
            yAxisIndex: 1,
          },
        ]
      };

分割线对齐问题解决方法

在上面的例子里添加如下代码:

        yAxis: [{
          ...
          min: 0,
          max: 1.5,
          interval: 1.5 / 5
        }, {
          ...
          min: 3,
          max: 8,
          interval: 5 / 5
        }],

此时图表就正常了:

image.png

所以解决办法就是加上字段min,max,interval,其中min是y轴的最小值,max是y轴的最大值,interval是y轴每个分割的长度,在上面,我都用max-min的值除以5,意思就是将两个y轴都分割成5份,每份的长度就是max-min的值除以5,这里分割的时候要注意,interval会取不同的小数点,所以最好max-min/5的值得小数位数和max的小数位数一样或更精确。

写在最后

以上就是使用echarts画双y轴图表并解决分割线对齐问题的所有代码和说明