chart.JS时间轴标签应仅为小时格式

chart.JS时间轴标签应仅为小时格式,chart.js,Chart.js,它似乎不起作用,或者我做错了什么。我以“1:45”的格式将分钟转换为小时,但我只希望轴每整小时都有刻度,如“0,1,2,3,…” 现在,我只需要在每一个奇怪的数据点每一个小时 var ctx = document.getElementById('myChart'); var HourLabels = []; MinLables=[54, 83, 155, 192, 206, 238, 285, 307, 335, 367, 431

它似乎不起作用,或者我做错了什么。我以“1:45”的格式将分钟转换为小时,但我只希望轴每整小时都有刻度,如“0,1,2,3,…” 现在,我只需要在每一个奇怪的数据点每一个小时

var ctx = document.getElementById('myChart');


               var HourLabels = [];

               MinLables=[54, 83, 155, 192, 206, 238, 285, 307, 335, 367, 431, 444, 495, 548, 604, 651, 680, 721, 777, 789, 859, 936, 980, 1004, 1047, 1089, 1122, 1135, 1200, 1245, 1323, 1381, 1396]

               function parseMinToHours (x) {
                    MINUTES = x;

                    var m = MINUTES % 60;

                    var h = (MINUTES-m)/60;

                    var HHMM = h.toString() + ":" + (m<10?"0":"") + m.toString();

                    return HHMM;
                  };

               function getHoursLabels () {
                   for (var i = 0; i <= MinLables.length; i++)
                     HourLabels.push(parseMinToHours(MinLables[i]));
                 };

               getHoursLabels();

               var myChart = new Chart(ctx, {
                type: 'line',
                data: {

                    labels: HourLabels,
                 datasets: [{
                   label: "Messwert",
                   xAxisID:'xAxis0',
                   data: [196.0, 222.0, 251.0, 272, 258, 298, 293, 235, 269, 226, 223, 242, 246, 290, 267, 261, 285, 274, 243, 200, 197, 203, 219, 269, 238, 268, 271, 280, 252, 266, 282, 296, 289, 300, 291], 
                   lineTension: 0,
                   fill: false,
                   borderColor: 'orange',
                   backgroundColor: 'transparent',
                   borderDash: [5, 5],
                   pointBorderColor: 'orange',
                   pointBackgroundColor: 'rgba(255,150,0,0.5)',
                   pointRadius: 5,
                   pointHoverRadius: 10,
                   pointHitRadius: 30,
                   pointBorderWidth: 2,
                   pointStyle: 'rectRounded'
                 }]
                },
                options:{
                 responsive: true,
                 maintainAspectRatio: false,
                 legend: {
                          display: true,
                          position: "left",
                          labels: {
                              fontColor: 'rgb(255, 99, 132)'
                          }},
                  scales:{
                    xAxes:[
                        {
                          id:'xAxis0',
                          time: {
                               parser: 'h',
                               unit: 'hour',
                               stepSize:1,
                               displayFormats: {
                                 'minute': 'h',
                                 'hour': 'h',
                                 min: '00:00',
                                 max: '23:59'
                               },

                             },

                    }],
                    yAxes:[{
                      ticks:{
                        beginAtZero:true
                      }
                    }]
                  }
                }
              });
var ctx=document.getElementById('myChart');
var HourLabels=[];
MinLables=[54、83、155、192、206、238、285、307、335、367、431、444、495、548、604、651、680、721、777、789、859、936、980、1004、1047、1089、1122、1135、1200、1245、1323、1381、1396]
函数parseMinToHours(x){
分钟=x;
var m=分钟%60;
var h=(分钟-m)/60;
var HHMM=h.toString()+“:”+(m
无论我在那里键入什么,displayFormats选项在时间上似乎没有任何影响

因为Chart.js没有被告知使用
时间
类型轴,例如:

xAxes: [{
    id: 'xAxis0',
    type: "time", // <-- add this line.
    time: {
    ...
下面是一个完全有效的示例:

var ctx=document.getElementById('myChart');
var HourLabels=[];
MinLables=[54、83、155、192、206、238、285、307、335、367、431、444、495、548、604、651、680、721、777、789、859、936、980、1004、1047、1089、1122、1135、1200、1245、1323、1381、1396]
函数parseMinToHours(x){
分钟=x;
var m=分钟%60;
var h=(分钟-m)/60;
var HHMM=h.toString()+“:”+(m<10?:“)+m.toString();
返回HHMM;
};
函数getHoursLabels(){
for(var i=0;i
因为Chart.js没有被告知使用
时间
类型轴,例如:

xAxes: [{
    id: 'xAxis0',
    type: "time", // <-- add this line.
    time: {
    ...
下面是一个完全有效的示例:

var ctx=document.getElementById('myChart');
var HourLabels=[];
MinLables=[54、83、155、192、206、238、285、307、335、367、431、444、495、548、604、651、680、721、777、789、859、936、980、1004、1047、1089、1122、1135、1200、1245、1323、1381、1396]
函数parseMinToHours(x){
分钟=x;
var m=分钟%60;
var h=(分钟-m)/60;
var HHMM=h.toString()+“:”+(m<10?:“)+m.toString();
返回HHMM;
};
函数getHoursLabels(){

对于(变量i=0;i解析器
定义更改为
解析器:'H:m'
,这样它就占了几分钟。我已经相应地更新了我的答案。是的,谢谢。我在使用时间格式时遇到问题。正如你所看到的,我从给定的几分钟到几小时进行计算.现在,我需要将前一天的时间“添加”到这些分钟/小时中,并有一个标有天和HH:mm的适当轴,例如:对于startime var starttime=新日期('2020-03-12T11:00:00'))我不想在第二天加上小时数来获得新的日期,因为我会加上24小时!我不知道怎么做…你明白吗?一定很简单!所以,从你之前的图表中,你可以将时间加在11:20。我想在这一小时的广告中加上开始时间日期('2020-03-12T11:00:00')到22点(我想是晚上10点)在同一天或23小时内,我得到第二天上午10点:日期('2020-03-13T10:00:00')谢谢。但正如你所看到的,这不是我想要的。我只想要一条带数据点的微笑线,但不是像我的帖子中那样都有一个单独的轴标签。相反,我想要一个从0…124 h到3到4之间的轴标签,我可以看到3个数据点。现在你有了所有的3个点垂直排列…所以类似于这里,我可以自定义设置我的x轴勾号,还有我所有的数据点需要悬停:@Chrishum,然后你需要将
解析器的定义更改为
解析器:'H:m'
,这样它就占了几分钟。我已经相应地更新了我的答案。是的,谢谢。我在使用时间格式时遇到了问题。正如你所看到的,我从给定的几分钟到几小时进行计算。现在我需要将前一天的时间“添加”到这些分钟/小时,并有一个标有天和HH:mm的适当轴,例如:对于startime变量starttime=新日期('2020-03-12T11:00:00'))我不想在第二天加上小时数来获得新的日期,因为我会加上24小时!我不知道怎么做…你明白吗?一定很简单!所以,从你之前的图表中,你可以将时间加在11:20。我想在这一小时的广告中加上开始时间日期('2020-03-12T11:00:00')到22点(我想是晚上10点)在同一天或23小时内,我得到第二天上午10点:日期('2020-03-13T10:00:00')