echarts纵坐标使用科学计数法表示
最近做项目使用echart画图,发现纵坐标的刻度太大或太小的情况,导致页面十分难看,甚至出现遮挡的情况,所以想办法用科学计数法表示
代码如下:
var option = { title: Echart.title, legend: Echart.legend, dataZoom: [ // { // left:20, // type: 'slider', // yAxisIndex: 0, // filterMode: 'empty', // // }, { type: 'inside', start: 0, end: 10 }, { bottom:20, start: 0, end: 10, handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z', handleSize: '60%', handleStyle: { color: '#fff', shadowBlur: 1, shadowColor: 'rgba(0, 0, 0, 0.4)', shadowOffsetX: 1, shadowOffsetY: 1 } }], tooltip: { trigger: 'axis' }, grid: { left: '5%', right: '1%', bottom: '5%', containLabel: true },
//纵坐标使用科学计数法表示 yAxis:{ type:Echart.yAxis.type, name:Echart.yAxis.name, nameGap:Echart.yAxis.nameGap, nameLocation:Echart.yAxis.nameLocation, axisLabel: { formatter: function (value) { 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 && res.length>4) { for(var i=2; i<res.length; i++){ if(res[i]=="0"){ numN2++; }else if(res[i]==".") continue; else break; } var v = parseFloat(value); v = v * Math.pow(10,numN2); return v.toString() + "e-" + numN2; }else if(num1>4) { if(res[0]=="-") numN1 = num1 - 2; else numN1 = num1 - 1; var v = parseFloat(value); v = v / Math.pow(10,numN1); if(num2 > 4) v = v.toFixed(4); return v.toString() + "e" + numN1; }else return parseFloat(value); } } }, xAxis:{ type:Echart.xAxis.type, name:Echart.xAxis.name, nameGap:Echart.xAxis.nameGap, nameLocation:Echart.xAxis.nameLocation, data:Echart.xAxis.data, minInterval: 1, axisLabel: { formatter: function (value, index) { value = parseFloat(value); //保留小数位数 return value.toFixed(4); } , } }, //xAxis: Echart.xAxis , //yAxis: Echart.yAxis, series: Echart.series };