我现在有这个:
我需要绘制此函数的图形:
-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
}
}]
});