Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 滴答声间隔不';在Highchart和Highstock中不能正常工作。_Javascript_Highcharts_Highstock - Fatal编程技术网

Javascript 滴答声间隔不';在Highchart和Highstock中不能正常工作。

Javascript 滴答声间隔不';在Highchart和Highstock中不能正常工作。,javascript,highcharts,highstock,Javascript,Highcharts,Highstock,我正在尝试使用Highstock/Highchart来显示一些数据。在我的数据中,每个记录之间的间隔是1毫秒,我想将每个刻度之间的长度设置为40毫秒,我尝试将tickInterval设置为40,但在图表上显示每个刻度之间的间隔为50。如果我将其设置为30,图表显示为25。很奇怪,我不知道现在该怎么办,请帮忙 链接: 谢谢Highstock没有将您提供的确切值设置为tickInterval 默认情况下,它所做的是在单元之间循环,以找到最适合滴答声间隔的单元 [1,2,5,10,20,25,501

我正在尝试使用Highstock/Highchart来显示一些数据。在我的数据中,每个记录之间的间隔是1毫秒,我想将每个刻度之间的长度设置为40毫秒,我尝试将tickInterval设置为40,但在图表上显示每个刻度之间的间隔为50。如果我将其设置为30,图表显示为25。很奇怪,我不知道现在该怎么办,请帮忙

链接:


谢谢

Highstock没有将您提供的确切值设置为
tickInterval

默认情况下,它所做的是在单元之间循环,以找到最适合
滴答声间隔的单元

[1,2,5,10,20,25,50100200500]//允许毫秒的倍数

[1,2,5,10,15,30]//秒

[1,2,5,10,15,30]//分钟

[1,2,3,4,6,8,12]//小时

[1,2]//天

[1,2]//一周

[1,2,3,4,6]//月


因此,可以通过搜索最近的最佳匹配来设置输入。

我浏览了highstock源代码,找到了这段代码

function normalizeTimeTickInterval(tickInterval, unitsOption) {
 var units = unitsOption || [[
 MILLISECOND, // unit name
 [1, 2, 5, 10, 20, 25, 50, 100, 200, 500] // allowed multiples 
 ...
}
这是什么代码? 它说如果你的时间单位是毫秒,那么将滴答声间隔(在你的例子中是40)标准化为其中一个的倍数,因此它将标准化为40到50和30到25。我不知道这是否可以从选项中覆盖。但是,如果您可以接受并且不违反任何版权法,您可以选择更改代码

编辑:找到了一种在不更改源代码的情况下使其正常工作的方法 检查小提琴@

这就是我所做的。对源代码进行一点调试/分析,提示highchart首先尝试在axis的options的units属性中查找units,如果找不到,则使用默认值。所以我继续调整units属性,将其设置如下。您需要在调用highcharts构造函数之前执行此操作

Highcharts.Axis.prototype.defaultOptions.units=[[
            'millisecond',
            [1, 2, 5, 10, 20, 25,30,40, 50, 100, 200, 500]
        ], [
            'second',
            [1, 2, 5, 10, 15, 30]
        ], [
            'minute',
            [1, 2, 5, 10, 15, 30]
        ], [
            'hour',
            [1, 2, 3, 4, 6, 8, 12]
        ], [
            'day',
            [1]
        ], [
            'week',
            [1]
        ], [
            'month',
            [1, 3, 6]
        ], [
            'year',
            null
        ]];

找到问题的解决方法,在更新的答案中找到