如何在HighchartJS中禁用近似值?

时间:2014-10-02 20:02:00

标签: javascript graph highcharts approximation

我现在有这个:

我需要绘制这个函数的图形:

-3.6 * Math.exp(-3.5 * Math.pow(x, 2)) * Math.sign(Math.cos(31 * x - 7));

我决定使用HighchartJS。它没有问题,但我不确定,近似函数是否正确(highchartJS会这样做)。

您可以找到我的结果here, on jsFiddle

你可以看到,图表的值是"跳跃"有一些幅度,highchartJS近似它,我正在得到连续的线。实际上,我的功能图与此结果不同。例如,您可以看到here

另外,您可以在下面的图片中看到结果:

enter image description here

线路正在中断。问题是如何用highchartJS获得相同的结果(或者我应该使用另一个库?)?

如果图表未在Chrome上运行,请尝试this

1 个答案:

答案 0 :(得分:1)

首先,你使用Math.sign方法,这不是官方标准的一部分(只是草案)。只需添加您的方法以获取chrome中的工作示例:

Math.sign = function(x){
  if( +x === x ) { 
    return (x === 0) ? x : (x > 0) ? 1 : -1;
  }
  return NaN;
}

现在,问题是Highcharts用线连接所有点。在您的情况下,更好的解决方案是使用scatter类型 - 因为您有足够的点来显示预期结果:http://jsfiddle.net/q2kSf/22/

$('#container').highcharts({
    series: [{
        type: 'scatter',
        name: 'Values',
        data: data,
        marker: {
            radius: 2   
        }
    }]
});