实现ECharts双Y轴左右刻度线一致

  
 <div id="main" style="width: 1400px; height: 500px"></div>

 data() {
    return {
      carStream: [], //车流
      date: [], //日期
      income: [], //收入
    }
  },
mounted() {
    this. getDynamicData()
},
methods: {
     //近30天收入和车流
    getDynamicData() {
      getAction('').then((res) => {
        if (res.success) {
          this.carStream = res.result.carStream
          this.date = res.result.date
          this.income = res.result.income
          for (let i = 0; i < this.date.length; i++) {
            this.income[i] = this.income[i] * 0.01
          }
          this.drawImg()
        }
      })
    },
  //绘图
    drawImg() {
      let myChart = echarts.init(document.getElementById('main'))
      // 指定图表的配置项和数据
      let option = {
        tooltip: {
          trigger: 'axis',
        },
        legend: {
          data: ['收入(元)', '车流(辆)'],
        },
        xAxis: [
          {
            type: 'category',
            data: this.date,
            axisPointer: {
              type: 'shadow',
            },
             axisTick: {
               show: false
             }
          },
        ],
        yAxis: [
          {
            type: 'value',
            name: '收入(元)',
            splitNumber: 5,
            max: this.calMax(this.income),
            min: this.calMin(this.income),
            interval: (this.calMax(this.income) - this.calMin(this.income)) / 5,
          },
          {
            type: 'value',
            name: '车流(辆)',
            splitNumber: 5,
            max: this.calMax(this.carStream),
            min: this.calMin(this.carStream),
            interval: (this.calMax(this.carStream) - this.calMin(this.carStream)) / 5,
          },
        ],
        series: [
          {
            name: '收入(元)',
            type: 'line',
            data: this.income,
          },
          {
            name: '车流(辆)',
            type: 'line',
            yAxisIndex: 1,
            data: this.carStream,
          },
        ],
      }
      // 使用刚指定的配置项和数据显示图表。
      myChart.setOption(option)
    },
    //求最大值
    calMax(arr) {
      var max = arr[0]
      var len = arr.length
      for (var i = 1; i < len; i++) {
        if (arr[i] > max) {
          max = arr[i]
        }
      }
      let maxint = Math.ceil(max / 9.5) //不让最高的值超过最上面的刻度
      let maxval = maxint * 10 //让显示的刻度是整数
      console.log(maxval,'max')
      return maxval
    },
    //求最小值
    calMin(arr) {
      var min = arr[0]
      var len = arr.length
      for (var i = 1; i < len; i++) {
        if (arr[i] < min) {
          min = arr[i]
        }
      }
      let minint = Math.floor(min / 10)
      let minval = minint * 10 //让显示的刻度是整数
       console.log(minval,'max')
      return minval
    },
}

 splitNumber 、max、min、 interval

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
对于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 ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值