Highcharts上的值不正确(与输入相比)

时间:2016-11-30 11:19:58

标签: javascript reactjs highcharts

我有一张(Highcharts)图表,其中包含一段时间内的百分比。我的系列的输入类似于:

series: [{
    name: "Percentage",
    data: [
        [1472515200000, 49],
        [1472601600000, 48.83],
        [1472688000000, 49.6],
        [1472774400000, 48.77]
    ]
}]

然而,在实际图表(areaspline)上,我得到了不同的值:

  • 8月30日,48.91
  • 8月31日,49.36
  • 1月9日,49.6
  • 2月2日,48.87

不完全确定为什么会出现这种情况,我假设是因为图表具有日期时间类型,并且它会计算出一段时间内的平均值。有没有办法可以在输入时使值准确无误?在文档中找不到任何内容

感谢您的任何想法/帮助/建议。

经过进一步研究,似乎不是一个Highcharts问题,而是一个React问题。我似乎在每个渲染上得到不同的值。将进一步研究并更新好奇。

问题似乎与React重新渲染有关,因此重新计算我的百分比值 - 而不是Highcharts问题。感谢所有评论的人,有点疯狂的追逐。

1 个答案:

答案 0 :(得分:0)

Jamie,要按字面意思输入输入值,您需要保留x轴未设置的type值或将其更改为type: 'literal'

这是我用您的数据创建的基本小提琴,用于说明如何将其完全解释为输入(与转换为日期相比):http://jsfiddle.net/brightmatrix/vtLswcex/1/

$(function () {
  Highcharts.setOptions({
    lang: {
      thousandsSep: ','     // adds comma for axis labels
    }
  });
  Highcharts.chart('container', {
    xAxis: {
      labels: {
        formatter: function() {
          return Highcharts.numberFormat(this.value,0);
        }
      }
    },
    series: [{
      name: "Percentage",
      data: [
        [1472515200000, 49],
        [1472601600000, 48.83],
        [1472688000000, 49.6],
        [1472774400000, 48.77]
      ]
    }]
  });
});

请注意,我已添加了x轴标签的格式,以及Highcharts.setOptions()功能中的千位分隔符,因此您的标签可以更容易读取为数万亿。

这有助于回答您的问题吗?如果您正在寻找更好的格式化特定时间数据的方法,那么@morganfree的评论非常值得深入研究。