记住用户名密码
方法仅供参考
可以更改logBase的值,数值越小刻度线越多,但也会出现,刻度值重复的问题,看各自需要,其次是对数据进行处理,全部变成大于1的数,最后在echarts的图表显示设置中更改回来
注意:对数函数的底数在大于1和大于0小于1时的曲线是沿x轴对称的
// 将y轴数据,鼠标显示框转为科学计数法 // 数据过滤,将y轴数据转为科学计数法,坐标轴和鼠标坐标显示使用 tranNumber: function(v) { if(v.axisDimension == 'x') return v.value let vStr = '' // 处理不同函数 if(typeof v == 'object') vStr = parseFloat(v.value).toString() else vStr = parseFloat(v).toString() // 根据处理后的参数内是否是科学计数法来分别转换 if(vStr.indexOf('e') == -1) { let vArr = vStr.split('.') let len = vArr[0].length let result = 1 + 'e' + (len - this.min_E - 1) }else{ let vArr = vStr.split('e') let result = 1 + 'e' + (len - this.min_E) } return result == '1e0' ? '1' + result } // 对应横坐标的纵坐标值显示使用 tranNumber_Y: function(params) { let resArr = [] for(let i = 0;i < params.length;i++) { let vStr = parseFlaot(params[i].value[1]).toString() let vFlaot = vStr.substring(0,3) var axisValueLabel = params[i].axisValueLabel var marker = params[i].marker var seriesName = params[i].seriesName // 根据处理后的参数内是否是科学计数法来分别转换 if(vStr.indexOf('e') == -1) { let vArr = vStr.split('.') let lenS = vArr[0].length let lenF = vFlaot.split('.')[0].length var v = vFlaot / 10 ** (lenF - 1) + 'e' + (lenS - this.min_E - 1) }else { let vArr = vStr.split('e') var v = vFlaot + 'e' + (vArr[1] - this,min_E) } var str1 = (marker || '') + (seriesName || '') + (seriesName ? ': ' : '') + v resArr[i] = str1 } returm `${axisValueLabel}<br />${resArr[0] ? resArr[0] + '<br />' : ''}${resArr[1] ? resArr[1] : ''}` }
目前有 0 条留言 其中:访客:0 条, 博主:0 条