Echarts 图 报错 createLinearGradient

折线图和柱状图切换报错

 Uncaught TypeError: Failed to execute 'createLinearGradient' on 'CanvasRenderingContext2D': The provided double value is non-finite.

在这里插入图片描述

           yAxis: {
    
    
                 type: 'log',  //因为 type 为 log
                 minInterval: 1,
                 axisTick: {
    
    
                     show: false,
                 },                
             },
  • 把yAxis下的type属性设为log就可以调整数据差距过大的问题,我们可以看到y轴的数值呈现对数递增
  • log轴要求坐标数据大于0,这是由对数函数性质决定的,所以对于数据中含有0图形会出现异常

解决方法

  • 把数据为0的数据处理为undefined

在这里插入图片描述

  • 代码
    getListCheats(){
    
    
      // 初始化数据请求
      if (!this.isEditState) {
    
    
        this.lineChartData.timer = this.chartData.name || []
        if(this.lineChartData.timer.length>0){
    
    
          this.nothing = false
        }else{
    
    
          this.nothing = true
        }
          this.lineChartData.allData.zero = this.setData(this.chartData.value||[]) //主要是这行
        } else {
    
    
            this.getMockFn()
        }
    },
    // 这个方法
    setData(data=[]){
    
    
      let array = []
      data.forEach(v=>{
    
    
        array.push(v&&v!=0?v:undefined)
      })
      return array
    },
  • 处理tooltip的数据显示 (以上图例已经ok,下面的根据需求)
       formatter:function(params){
    
    
            console.log(params)
            let html = params[0].name
            params.forEach((item,index)=>{
    
    
                html+=(`<br/>${
      
      item.name}: ${
      
      item.value==undefined ? 0 : item.value}`)
            })
            return html;
        },
  • 以上就ok了!
  • 上图

在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45563734/article/details/131109245