Echart坐标轴刻度XY如何转为科学计数法(a*10的n次方的形式)

全屏阅读
  • 基本信息
axisLabel: {
            formatter: function(value)
            {
              let indexList = ['⁰', '¹', '²', '³', '⁴', '⁵', '⁶', '⁷', '⁸', '⁹']
              if (Math.abs(value) > 10)
              {
                if (value === 0)
 
                  return '0'
                // 检查是否已经转化为科学计数了
                // else if ((value + '').indexOf('e') > 0)
                //   return (value + '').replace(/e/, 'E')
                else
                {
                  var res = value.toString()
                  var numN1 = 0
                  var numN2 = 1
                  var num1 = 0
                  var num2 = 0
                  var t1 = 1
                  // 计入小数点前后有多少位
                  for (var k = 0; k < res.length; k++)
                  {
                    if (res[k] === '.')
                      t1 = 0
                    if (t1)
                      num1++
                    else
                      num2++
                  }
                  // 均转换为科学计数法表示
                  if (Math.abs(value) < 1)
                  {
                    // 小数点后一位开始计算
                    for (var i = 2; i < res.length; i++)
                    {
                      if (res[i] === '0')
 
                        numN2++ //记录10的负指数值(默认值从1开始)
              
                      else if (res[i] === '.')
                        continue
                      else
                        break
                    }
                    let v = parseFloat(value)
                    // 10的numN2次方
                    v = v * Math.pow(10, numN2)
                    v = v.toFixed(1) //四舍五入 仅保留一位小数位数
                    let char = indexList[Number(numN2)]
                    return v.toString() + '*10' + char
                  }
                  else if (num1 > 1)
                  {
                    numN1 = num1 - 1
                    var v = parseFloat(value)
                    v = v / Math.pow(10, numN1)
                    if (num2 > 1)
 
                      v = v.toFixed(1)
              
                    let char = indexList[Number(numN1)]
                    return v.toString() + '*10' + char
                  }
                }
              }
              else
 
                return value
            }
          },

顶一下
(0)
100%
订阅 回复
踩一下
(0)
100%
» 郑重声明:本文由mpxq168发布,所有内容仅代表个人观点。版权归恒富网mpxq168共有,欢迎转载, 但未经作者同意必须保留此段声明,并给出文章连接,否则保留追究法律责任的权利! 如果本文侵犯了您的权益,请留言。

目前有 0 条留言 其中:访客:0 条, 博主:0 条

给我留言

您必须 [ 登录 ] 才能发表留言!