我现在有这个:

我需要绘制此函数的图形:

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


我决定使用HighchartJS。它没有问题,但是我不确定近似函数是正确的(highchartJS可以做到这一点)。

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

您可以看到,该图的值以一定幅度“跳跃”,highchartJS近似于此,我得到的是连续线。实际上,我的函数图与此结果有所不同。例如,您可以看到here

此外,您还可以在下面的图片上看到结果:



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

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

最佳答案

首先,您使用的是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
        }
    }]
});

09-25 19:48