Javascript highcharts的历史数据中不存在毫秒数据
问题在于,当historyData of highcharts中存在大量数据时,放大数据的时间仅为每秒,而不是毫秒。因此,放大历史数据中包含大量数据的图表时,数据丢失的毫秒数 若要重现此问题,请访问以下链接,然后在historydata中存在大量数据后,将setinterval方法中的间隔从20更改为一些较大的数字20000,然后使用rangeselector缩放historydata,historydata只绘制了秒数数据,而没有毫秒数 该问题在以下链接中转载: 我访问了highcharts的api文档:并尝试对pointInterval、pointIntervalUnit、connectNulls、gapSize gapUnit进行更改,但仍然找不到确切的解决方案 在此处更改间隔:Javascript highcharts的历史数据中不存在毫秒数据,javascript,highcharts,Javascript,Highcharts,问题在于,当historyData of highcharts中存在大量数据时,放大数据的时间仅为每秒,而不是毫秒。因此,放大历史数据中包含大量数据的图表时,数据丢失的毫秒数 若要重现此问题,请访问以下链接,然后在historydata中存在大量数据后,将setinterval方法中的间隔从20更改为一些较大的数字20000,然后使用rangeselector缩放historydata,historydata只绘制了秒数数据,而没有毫秒数 该问题在以下链接中转载: 我访问了highcharts
setInterval(function () {
var x = (new Date()).getTime(), // current time
y = Math.round(Math.random() * 100);
series1.addPoint([x, y], true, true);
}, 20);
var series2 = this.series[1];
setInterval(function () {
var x = (new Date()).getTime(), // current time
y = Math.round(Math.random() * 50);
series2.addPoint([x, y], true, true);
}, 20);
预期结果:预期结果是当放大图表的historyData时,还应绘制毫秒数据
//创建图表
Highcharts.股票图表“容器”{
图表:{
活动:{
加载:函数{
//设置图表的每秒更新
var series1=该系列[0];
设置间隔函数{
var x=new Date.getTime,//当前时间
y=Math.roundMath.random*100;
系列1.添加点[x,y],真,真;
}, 20;
var series2=本系列[1];
设置间隔函数{
var x=new Date.getTime,//当前时间
y=Math.roundMath.random*50;
序列2.添加点[x,y],真,真;
}, 20;
}
}
},
时间:{
useUTC:false
},
范围选择器:{
按钮:[{
计数:1,
键入:“分钟”,
文字:“1M”
}, {
计数:5,
键入:“分钟”,
文字:“5M”
}, {
键入:“全部”,
文字:“全部”
}],
输入:错误,
已选:0
},
标题:{
文本:“实时随机数据”
},
出口:{
已启用:false
},
图例:{
已启用:true
},
打印选项:{
系列:{
标记:{
国家:{
悬停:{
启用:对,
动画:{持续时间:100},
enableMouseTracking:正确,
粘滞跟踪:正确
}
}
}
}
},
工具提示:{
分享:是的,
split:false,
粘滞追踪:没错,
enableMouseTracking:正确,
启用:对,
followPointer:true,
followTouchMove:没错,
格式化程序:函数{
var工具提示=;
var phaseNameList=;
//工具提示+=I-unit++x:+this.x+;
工具提示+=I-unit++x:+new Datethis.x+
;
工具提示+=+y:+this.y+;
工具提示+=+此+;
返回工具提示;
}
},
系列:[{
名称:“随机数据1”,
数据:函数{
//生成一个随机数据数组
var数据=[],
时间=新日期.getTime,
我
对于i=-999;i而言,区别在于初始数据的间隔为1秒:
for (i = -999; i <= 0; i += 1) {
data.push([
time + i * 1000, // date every second
Math.round(Math.random() * 100)
]);
}
setInterval(function() {
var x = (new Date()).getTime(), // date every 20 milliseconds
y = Math.round(Math.random() * 50);
series2.addPoint([x, y], true, true);
}, 20);
谢谢@ppotaczek的回复,在我的一段代码中,我发现当我通过ajax从后端获取数据时,一些点在绘图时丢失了,特别是只有毫秒的数据,但图形没有损坏,但是当导出时,它拥有所有的点,你能告诉我为什么会发生这种情况吗?任何与此相关的响应都会非常有用。谢谢。只有在历史数据中存在非常高频率的数据时才会发生这种情况。您好@mukhtar alam,我不知道您的具体用例,但请尝试禁用xAxis.ordinal属性。您好@ppotaczek,它已经被禁用了,但问题仍然存在。我会解决的。@mukhtar alam-您是否用h和没有数据分组?如果您仍然有问题,请提供一些最简单的实例。是的,我也尝试了数据分组,不幸的是,我无法复制我的代码,没关系,我会解决这个问题。谢谢您的帮助。