ChartJS:xAxis标签的完整日期?

问题描述 投票:0回答:1

我一直在研究时间刻度线图,并注意到当所有数据点都靠得很近时,xAxis标签会自动转换为时间。我尝试了不同的xAxis时间单位,但没有成功。

这里是一个简单的codepen示例,其中xAxis标签按小时显示。如果将时刻更改为3月而不是4月,则xAxis标签将按日期显示。有没有一种方法可以强制xAxis标签始终为日期和时间?

xAxes: [{
                    type: 'time',
                    time: {
                        parser: timeFormat,
                        // unit: 'day',
                        // unit: 'hour',
                        tooltipFormat: 'll HH:mm'
                    },

https://codepen.io/ccwakes/pen/abvzewW

谢谢

chart.js
1个回答
0
投票

您可以根据Chart.js文档中的time.displayFormats使用属性Display Formats。有关允许的格式字符串,请参见Moment.js

time: {
  unit: 'hour',
  displayFormats: {
    hour: 'MMM DD HH:mm'
  },
  tooltipFormat: 'MMM DD HH:mm'
}

请在下面查看您的修改后的代码。

new Chart(document.getElementById('canvas'), {
  type: 'line',
  data: {
    datasets: [{
      label: 'Dataset 1',
      backgroundColor: 'red',
      borderColor: 'red',
      fill: false,
      data: [
        { x: '2020-04-10 13:00', y: 60 }, 
        { x: '2020-04-12 06:00', y: 100 }, 
        { x: '2020-04-12 13:00', y: 5 }
      ],
    }, {
      label: 'Dataset 2',
      backgroundColor: 'blue',
      borderColor: 'blue',
      fill: false,
      data: [
        { x: '2020-04-10 13:00', y: 45 }, 
        { x: '2020-04-11 13:00', y: 65 }, 
        { x: '2020-04-12 06:00', y: 80 }, 
        { x: '2020-04-12 13:00', y: 65 }
      ]
    }]
  },
  options: {
    title: {
      text: 'Time Scale'
    },
    scales: {
      xAxes: [{
        type: 'time',
        time: {
          unit: 'hour',
          displayFormats: {
            hour: 'MMM DD HH:mm'
          },
          tooltipFormat: 'MMM DD HH:mm'
        },
        scaleLabel: {
          display: true,
          labelString: 'Date'
        }
      }],
      yAxes: [{
        display: true,
        scaleLabel: {
          display: true,
          labelString: 'Value'
        }
      }]
    },
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.bundle.min.js"></script>
<canvas id="canvas" height="90"></canvas>
© www.soinside.com 2019 - 2024. All rights reserved.