gpt4 book ai didi

javascript - 将实时数据绘制成折线图

转载 作者:行者123 更新时间:2023-11-28 07:17:57 26 4
gpt4 key购买 nike

我有一些实时收集的数据,我想将其绘制成折线图。

我想将最近 60 次调用中收到的数据绘制成折线图(不提取数据时暂停绘制),每个名称:值对获取 1 个图表(因此在本例中将有 6 个图表)。当然,我需要每秒或每次调用 httpGet() 时更新图表。

我不确定在收到服务器的响应(要绘制的数据)后如何继续下一步...我正在寻找的结果几乎是“CPU使用历史记录”风格。

这是我的 JavaScript 文件,用于从聚合服务器收集数据:

//httpGet() adopted from SO/247483
function httpGet()
{
var xmlHttp = new XMLHttpRequest();
xmlHttp.open( "GET", "foo.com/sensordata", false );
xmlHttp.send( null );
console.log(xmlHttp.responseText);
return xmlHttp.responseText;
}

var interval;

//this is called by a button in the html file
function start(btn)
{
if(btn.value=="Start"){
interval = setInterval(httpGet, 1000);
btn.value="Stop";
} else {
btn.value="Start";
clearInterval(interval);
}
}

因此,单击“开始”按钮将开始每 1 秒发出 GET 数据请求。服务器以 JSON 格式返回数据,这是控制台输出的示例:

{
"Time":"2015/06/04 18:35:39",
"SensorA":{"Value1":0.34804,"Value2":-0.39175,"Value3":-0.61718},
"SensorB":{"Value1":516,"Value2":1,"Value2":2103}
}

谢谢!

最佳答案

我做了this demo (请务必单击“开始源”按钮!)使用 ZingChart。在 get 请求的回调中,我循环遍历数据并将其转换为适合 ZingChart 的格式,然后当所有数据都被清除后,我使用 modify方法来设置 scale-x 中的 values 属性,该属性采用以毫秒为单位的 Unix 时间值数组,以及 setseriesvalues更新图表中数据的方法。

for(var i = 0; i < 6; i++){
zingchart.exec('myChart','modify',{
update:false,
data:{
"scale-x":{
"values":dataObj.date
}
}
});
zingchart.exec('myChart','setseriesvalues',{
update:false,
graphid:i,
values:[dataObj[Object.keys(dataObj)[(i + 1)]]]
});
}
zingchart.exec('myChart','update');

由于我连续多次调用modify和setseriesvalues,因此我将两者的update选项设置为false,这会将更改排队,并使用当调用 update 时,所有已排队的内容都会被推送到图表中。

(是的,我确实在这里伪造了数据 - 我在两个不同的 JSON 文件之间交替,但您应该明白。)

关于javascript - 将实时数据绘制成折线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30639928/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com