echarts中设置双Y轴左右刻度线一致

echarts中设置双Y轴左右刻度线一致

一、效果图

在这里插入图片描述

二、主要代码

 this.taskxAxis = []
 this.taskSeries = [[], []]

taskInit() {
     function calMax(arr) {
         var max = arr[0]
         for (var i = 1; i < arr.length; i++) {
             // 求出一组数组中的最大值
             if (max < arr[i]) {
                 max = arr[i]
             }
         }
         var maxint = Math.ceil(max / 10) // 向上取整
         var maxval = maxint * 10 // 最终设置的最大值
         return maxval // 输出最大值
     }
     var maxappreg = calMax(this.taskSeries[0]) //任务数值
     var maxactive = calMax(this.taskSeries[1]) //发送量值
     var interval_left = maxappreg / 5 //左轴间隔
     var interval_right = maxactive / 5 //右轴间隔

     this.taskEchartLine = echarts.init(this.$refs['taskLineChart'])
     window.addEventListener('resize', () => {
         this.taskEchartLine && this.taskEchartLine.resize()
     })
     this.taskOption = {
         tooltip: {
             trigger: 'axis',
             backgroundColor: '#fff', // 提示框背景
             formatter: params => {
                 return `
                 <div style="border:0;color:#666;text-align: left;width:150px">
                   <p style="color:#000"> ${params[0].axisValue}</p>
                     <div class="flex justify-content-space-between">
                         <div>
                             <span> 任务数:
                             ${(function () {
                                 if (params[0].data >= 10000) {
                                     return params[0].data / 10000 + '万'
                                 } else if (params[0].data < 10000) {
                                     return params[0].data
                                 }
                             })()}
                             </span>
                         </div>
                     </div>
                     <div class="flex justify-content-space-between">
                         <div>
                             <span> 发送量:
                             ${(function () {
                                 if (params[1].data >= 10000) {
                                     return params[1].data / 10000 + '万'
                                 } else if (params[1].data < 10000) {
                                     return params[1].data
                                 }
                             })()}
                             </span>
                         </div>
                     </div>
                   </div> `
             },
             axisPointer: {
                 type: 'shadow',
             },
         },
         color: ['rgb(65,169,203)', 'rgb(246,126,60)'],
         legend: {
             data: ['任务数', '发送量'],
             left: 'right',
             selectedMode: false, //取消图例上的点击事件
         },
         grid: {
             left: '3%',
             right: '4%',
             bottom: '3%',
             containLabel: true,
         },
         xAxis: {
             type: 'category',
             boundaryGap: false,
             data: this.taskxAxis,
         },
         yAxis: [
             {
                 type: 'value',
                 name: '任务数',
                 min: 0,
                 max: maxappreg,
                 splitNumber: 5,
                 interval: interval_left,
                 axisLine: {
                     //y轴
                     show: false,
                 },
                 axisTick: {
                     //y轴刻度线
                     show: false,
                 },
                 axisLabel: {
                     color: '#444343',
                     formatter: function (value, index) {
                         var value
                         if (value >= 10000) {
                             value = value / 10000 + '万'
                         } else if (value < 10000) {
                             value = value
                         }
                         return value
                     },
                 },
             },
             {
                 type: 'value',
                 name: '发送量',
                 min: 0,
                 max: maxactive,
                 splitNumber: 5,
                 interval: interval_right,
                 axisLine: {
                     //y轴
                     show: false,
                 },
                 axisTick: {
                     //y轴刻度线
                     show: false,
                 },
                 axisLabel: {
                     color: '#444343',
                     formatter: function (value, index) {
                         var value
                         if (value >= 10000) {
                             value = value / 10000 + '万'
                         } else if (value < 10000) {
                             value = value
                         }
                         return value
                     },
                 },
             },
         ],
         series: [
             {
                 name: '任务数',
                 type: 'line',
                 data: this.taskSeries[0],
             },
             {
                 name: '发送量',
                 type: 'line',
                 yAxisIndex: 1, //在单个图表实例中存在多个y轴的时候有用
                 data: this.taskSeries[1],
             },
         ],
     }
     this.taskEchartLine.setOption(this.taskOption)
 },

链接: https://blog.csdn.net/LzzMandy/article/details/79400141?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-7&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-7

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于echarts左右y轴刻度,可以采用以下几种方法来解决: 1. 让两个坐标轴共用一个最大值,可以保持刻度一致。即,在两个y轴数组找到最大值,然后将它作为共同的最大值。 2. 使用JavaScript的Math.max方法来获取左右y轴数组的最大值,然后将两个最大值的较大值作为共同的最大值。这样可以确保两个y轴刻度一致。 以上方法可以确保echarts左右y轴刻度保持一致,使图表更加清晰和易于比较。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [echartsy轴实现(解决刻度线不对齐)](https://blog.csdn.net/m0_55546349/article/details/121786189)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [MATLAB代码示例,用于建立模型表示物理或工程系统,并使用矩阵代数来描述系统的动态性质(附详细操作步骤)...](https://download.csdn.net/download/weixin_44609920/88237902)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值