2014-10-02 54 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 
     } 
    }] 
});