使用Chart.js显示基于时间的数据时,数据本身似乎与X轴标签不符。例如,当数据用于2016-11-30时,该标准实际上在12月显示。一系列日期的最后日期甚至都没有在图表上显示。我如何使它们正确对齐?
$(document).ready(function(){
var config = {
type: 'bar',
data: {
labels: [
'2016-11-30', // Why showing in December?
'2017-04-01', // Why not showing in beginning of April?
'2017-06-30'], // Why not showing?
datasets: [{
label: 'Contacts',
backgroundColor: 'red',
data: [
1,
5,
7
]
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero:true,
stepSize:1
}
}],
xAxes: [{
type: 'time',
barThickness:2,
time: {
unit: 'month'
}
}]
}
}
};
var Canvas = $("#Chart");
var cc = new Chart(Canvas, config);
});
codepen上的示例:https://codepen.io/skunkbad/pen/embjma
关于错误日期显示的显示:
这是因为您如何实例化日期对象及其与时区的关系,您的浏览器可能正在将其解决到您的时区,并且您将获得另一个值。
我在GMT-3上,例如:
$ new Date('2016-11-30')
- Tue Nov 29 2016 21:00:00 GMT-0300 (BRT)
$ new Date(2016, 11, 30)
- Fri Dec 30 2016 00:00:00 GMT-0300 (BRT)
关于未显示最后数据:
绘制了栏,但没有可见位置。可以在此jsfiddle上验证这一点(不确定为什么不在codepen上(,如果将鼠标移至屏幕边缘,标签将出现。
这是一个已知问题,正在此处跟踪:#2415
如果可能的话,我认为最简单的解决方法是在您的时间尺度上手动定义 max
属性