基于条件显示标记,数据量大



我正在尝试绘制一个基于条件标记的高股票图表,具有大量数据。你可以假设是2万到5万。通过跟踪这两个jsfield 1和2

我已经选择了一种绘制图表的方法,让我给你展示几行代码

let mockValue = [
{
x: 1671948197800,
y: 1.102,
marker: {
enabled: true
}
},
[1671948197821, 1.103],
{
x: 1671948198839,
y: 1.104,
marker: {
enabled: true
}
},
[1671948206861, 2.106],
{
x: 1671948199800,
y: 1.105,
marker: {
enabled: true
}
},
{
x: 1671948200823,
y: 1.106,
marker: {
enabled: true
}
},
{
x: 1671948201831,
y: 1.107,
marker: {
enabled: true
}
},
[1671948203822, 1.105],
[1671948204836, 1.106],
[1671948205861, 1.106]
]
this.options.series[0].data = mockValue;
this.chart = new StockChart(this.startStopLevelOption);

这是一个模拟数据,我把它传递给选项,那个选项我传递给hilitock。我从数据库中获取数据这里就不展示了但我用这种格式来展示数据。当我的条件满足,我创建一个JSON对象与标记和颜色,它不满意的地方,我只是传递数组与时间在0索引和值在第一个索引。

这个模拟数据工作得很好,但是当我对大数据做同样的事情时,它没有绘制图表,甚至我没有得到任何错误。

你能告诉我原因或解决这个问题的方法吗?我只需要用条件标记画一个图表。

Thanks in advance

出于性能考虑,Highhcharts引入了turboThreshold。在API中我们可以读:

turboThreshold:数量自从2.2.0

当一个序列包含一个大于此长度的数据数组时,只有一个数字的维度数组,或带有x和y的二维数组值是允许的。而且,只测试第一点,其余的都测试被假定为相同的格式。这节省了昂贵的数据检查在长序列中索引。设置为0 disable

备注:在boost模式下,turbo阈值是强制的。只允许使用数字数组 或二维数组。默认为1000

设置:

series: [{
turboThreshold: 0,
...
}]

请检查dataGroupingHilitock功能,该功能也会影响单点启用标记的结果。


生活例子:http://jsfiddle.net/BlackLabel/gmLbo7st/

文档:https://www.highcharts.com/docs/stock/data-grouping

API参考:

https://api.highcharts.com/hilitock/series.line.turboThreshold

https://api.highcharts.com/hilitock/series.line.dataGrouping

最新更新