2014-10-02 59 views
1

我现在有这样的:如何禁用HighchartJS中的近似值?

我要画这个函数的图形:

-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,所有的请

+0

所链接的jsfiddle不运行。 – wergeld 2014-10-02 20:19:06

+0

@wergeld它的确如此。在铬37,至少。 – baldrs 2014-10-02 20:24:41

+0

我也在使用chrome 37。 http://jsfiddle.net/q2kSf/13/得到错误,undefined不是你的foo()函数中的函数。 – wergeld 2014-10-02 20:26:52

回答

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 
     } 
    }] 
});