我已经建立了类似的东西。我从服务器获取数据,将其放入名为series的对象中,然后将其传递给Highcharts代码块中的'series'。基本上,每个员工都会有一个日期,并且我的默认值(Y轴)现在为“ 1”。但是,即使看起来我具有正确的数据并进行了正确的解析,我也无法按预期在图表上获得日期。出乎意料的是,我得到的毫秒值是Y轴值,这没有任何意义,并且每个工作人员都有一个默认日期,即1月1日。 (例如,工作人员1,1月1日,x轴值= 1554422400000)
我得到这样的日期, 2019年2月19日17:32 。然后我将它们分开,像这样使用 ([[Date.UTC(parseInt(yearsplit [0]),datesplit [1] -1,parseInt(datesplit [0])),1]) 在Highcharts中看上去完全一样的格式,([Date.UTC(1971,2,16),0.86])
var responsePromise = $http.post('statistics/getAllProtocolRecords', data, null);
responsePromise.success(function (dataFromServer, status, headers, config) {
var series = [{
name: "",
data: []
}];
dataFromServer.protocolRecords.forEach((data) => {
var datesplit = data.checkupDate.split("-");
var yearsplit = datesplit[2].split(" ");
series.push({
name: data.staff,
data: [Date.UTC(parseInt(yearsplit[0]), datesplit[1]-1, parseInt(datesplit[0])), 1]
})
});
series.shift();
Highcharts.chart('container', {
chart: {
type: 'spline'
},
title: {
text: 'Toplam Muayene Kaydı (' + sysrefHcCheckupType + ')'
},
subtitle: {
text: ''
},
xAxis: {
type: 'datetime',
dateTimeLabelFormats: { // don't display the dummy year
month: '%e. %b',
year: '%b'
},
title: {
text: 'Tarih'
}
},
yAxis: {
title: {
text: 'Toplam Muayene (Gün)'
},
min: 0
},
tooltip: {
headerFormat: '<b>{series.name}</b><br>',
pointFormat: '{point.x:%e. %b}: {point.y:%f} '
},
plotOptions: {
spline: {
marker: {
enabled: true
}
}
},
colors: ['#00bdff', '#FF0700', '#df0300', '#ff0700', '#c0df00'],
series: series
});
});
答案 0 :(得分:0)
我刚刚意识到我在push函数中犯了一个小错误。在series.push中,“数据”应像这样,并用数组括起来:
data: [
[ Date.UTC(parseInt(yearsplit[0]), parseInt(datesplit[1])-1, parseInt(datesplit[0])), 1]
]