Echarts双纵轴分隔线合并解决方案

Echarts 双纵轴分隔线合并解决方案

问题来源

因为右纵轴要限制最大值,所以导致了整个Echarts图的分隔线分裂开来

  • 首先需要在 Echarts 中配置选项

    yAxis: [
        {
            type: 'value',
            name: '当日营收',
            axisLabel: {
                formatter: '{value} 元'
            },
            max: null, // 最大订单数(null/undefined 来表示“自动计算最大值”)
            splitNumber: 6, // 刻度数(没用)
            interval: null // 限制分隔间隔
        },
        {
            type: 'value',
            name: '当日在线订单',
            axisLabel: {
                formatter: '{value} 条'
            },
            max: null, // 最大订单数(null/undefined 来表示“自动计算最大值”)
            splitNumber: 6, // 刻度数(没用)
            interval: null // 限制分隔间隔
        }
    ],
    
  • 然后动态渲染Echarts

    • 1、定义分隔段数
    • 2、计算列表中的最大值
    • 3、计算分隔数 = 最大值 / 分隔段数,再向上取整
    • 4、重新计算最大值 = 分隔数 * 分隔段数
    • 5、赋值渲染 Echarts
    var maxLy = 0 // 最大当日营收金额
    var maxRy = 0 // 最大订单条数
    var gap = 6 // 分隔段数
    var intervalLy = null // 当日营收金额分隔间隔数
    var intervalRy = null // 订单条数分隔间隔数
    
    res.data.forEach((item) => {
        if(maxLy < item.drys) {
            maxLy = item.drys
        }
        if(maxRy < item.jxz) {
            maxRy = item.jxz
        }
    })
    
    // console.log(maxLy);
    // console.log(maxRy);
    // 如果大于6条则设置为null,否则设置为6
    if(maxLy <= gap) {
        maxLy = gap
    }
    
    if(maxRy <= gap) {
        maxRy = gap
    }
    
    // 计算间隔数 = 当前最大值 / 分隔段数,再向上取整
    intervalLy = Math.ceil(maxLy / gap)
    intervalRy = Math.ceil(maxRy / gap)
    
    // 计算左侧为间隔倍数的最大值
    maxLy = intervalLy * gap
    // 计算右侧为间隔倍数的最大值
    maxRy = intervalRy * gap
    
    this.option.yAxis[0].interval = intervalLy // 左纵轴间隔数赋值
    this.option.yAxis[1].interval = intervalRy // 右纵轴间隔数赋值
    this.option.yAxis[0].max = maxLy // 左纵轴最大值赋值
    this.option.yAxis[1].max = maxRy
    // 渲染 Echarts
    this.myChart.setOption(this.option);
    
  • 以上值缺一不可

  • 最大值max是用来限制可以显示的最大值,如果不限制最大值的话,会默认设置一个最大值,这样左右两轴的分隔线就对不齐了😊

  • 这里我没有限制最小值,而是让数据默认从最小的开始的,如果有需要,可以去设置最小值

  • 效果图

    image-20211117183822386

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码小余の博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值