Javascript Chart.js-使用JSON数据创建时间序列频率图
因此,最近我一直在开发一个web应用程序,该应用程序从请求中收集数据,并尝试将数据输出到基于每小时/月频率等的图表中 所以,我使用Chart.js,并有日期的JSON数据,我试图制作一个图表,显示每小时请求的频率,等等 我的数据是每个请求都有一个时间戳,所以我只有一堆Javascript Chart.js-使用JSON数据创建时间序列频率图,javascript,web,chart.js,Javascript,Web,Chart.js,因此,最近我一直在开发一个web应用程序,该应用程序从请求中收集数据,并尝试将数据输出到基于每小时/月频率等的图表中 所以,我使用Chart.js,并有日期的JSON数据,我试图制作一个图表,显示每小时请求的频率,等等 我的数据是每个请求都有一个时间戳,所以我只有一堆2018-01-03 15:15:04格式的时间戳。例如: {'2018-01-03 15:15:04',2018-01-04 06:32:45',2018-01-04 23:32:45',2018-02-23 01:24:32'
2018-01-03 15:15:04
格式的时间戳。例如:
{'2018-01-03 15:15:04',2018-01-04 06:32:45',2018-01-04 23:32:45',2018-02-23 01:24:32'
除了,我有几百个。我想要的是每小时、每月等的频率
谁能给我指出正确的方向吗?我的两个想法是:
.keys()
和.values()
函数是按插入顺序返回的。常规对象不能保证秩序
然后,Chart.js可以非常轻松地显示这些值,使用它们可以将.keys()
和.values()
迭代器转换为数组
var a=['2018-01-03 15:15:04','2018-01-04 06:32:45','2018-01-04 23:32:45','2018-02-23 01:24:32','2018-02-23 04:33:12','2018-03-23 05:33:12','2018-03-22 08:33:12','2018-04-27 01:33:12'];
var freqMap=新映射();
a、 forEach(函数(时间){
var日期=新日期(时间);
var monthName=date.tolocalesting(“en us”{
月份:“短”
});
var key=monthName+“-”+date.getFullYear();
var count=freqMap.get(key)| 0;
freqMap.set(键+计数);
});
var ctx=document.getElementById(“myChart”).getContext(“2d”);
var myLineChart=新图表(ctx{
键入:“行”,
数据:{
标签:[…freqMap.keys()],
数据集:[{
标签:'每月请求',
数据:[…freqMap.values()]
}],
},
选项:{
要素:{
行:{
张力:0
}
},
比例:{
雅克斯:[{
滴答声:{
贝吉纳泽罗:是的,
步长:1
}
}]
}
}
});代码>
Wow,这看起来很管用。非常感谢你的回复,太棒了!没问题!如果它解决了你的问题,请随意接受它作为答案。就这么做了。非常感谢安德鲁:)