首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >科学符号到十进制表示法在高图表中不起作用

科学符号到十进制表示法在高图表中不起作用
EN

Stack Overflow用户
提问于 2019-07-26 13:37:24
回答 1查看 601关注 0票数 1

我正在用一些超小的价值建立一个高图表。我的问题是

当数字为e-7时,图表不会将科学符号转换为数字符号.

这是我的密码。

代码语言:javascript
复制
     $(document).ready(function() {
  var data = [[1532476800000,9.888550207585507e-7],[1532995200000,9.566888695224366e-7],[1533081600000,9.217248059141058e-7]];
  var options = {
    chart: {
      renderTo: 'container',
      type: 'line',

    },
    title: {
      text: 'Fruit Consumption'
    },
        xAxis:{
        type:'datetime'
    },
    yAxis: {
      title: {
        text: 'Fruits Amount'
      }
    },
    series: [{}]
  };
  options.series[0].data = data;
  var chart = new Highcharts.Chart(options);

});

如果序列编号是e-6,那么转换就没有任何问题。

以前有没有人面临过这个问题?

这是同样的小提琴。

有人能帮帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2019-07-26 16:48:59

我的理解是,高级图表中的标签只是使用数字的值,这就是Javascript打印这些数字的方式。例如,在Node中演示:

代码语言:javascript
复制
$ node
> 0.0000009888550207585507
9.888550207585507e-7
> 0.000009888550207585507
0.000009888550207585507

那你能做什么?您可以使用toFixed (文档)始终以给定的精度表示它。但是,请注意,这有一个大约20的限制,并要求您选择一个特定的数字,并成为一个字符串。然而,它很简单(JSFiddle演示):

代码语言:javascript
复制
yAxis: {
    labels: {
        formatter: function() {
            return this.value.toFixed(8);
        }
    },
}

如果使用值过大的toFixed,则可以开始对尾随零进行编排以获得可变长度标签,但这可能不是最好的。一个粗略的例子(JSFiddle演示):

代码语言:javascript
复制
yAxis: {
    labels: {
        formatter: function() {
            let strValue = this.value.toFixed(20);

            for(let i = strValue.length - 1; i >= 0; i--) {
                if(strValue.charAt(i) != '0') {
                    strValue = strValue.substring(0, i + 1);
                    break;
                }
            }

            return strValue;
        }
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57221238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档