当前位置: 首页 > 知识库问答 >
问题:

ChartJS: xAxis Labels 的完整日期?

卞俊贤
2023-03-14

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

这是一个简单的代码代码示例,其中xAxis标签是按小时的。如果您将时刻更改为三月而不是四月,xAxis标签是按日期的。有没有办法强制xAxis标签始终为日期和时间?

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

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

谢谢

共有1个答案

孟海
2023-03-14

您可以根据Chart.js留档的显示格式使用属性time.displayFormats。有关允许的格式字符串,请参阅Moment.js。

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

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

js lang-js prettyprint-override">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>
 类似资料:
  • 问题内容: 我正在使用asp.net mvc列出jquery完整日历中的事件。下面是我用来通过mvc中的json列出事件的脚本。 但是以上脚本未在日历中显示任何事件。我在上面的脚本中做错了什么? 问题答案: 当我将json事件的日期解析为以下内容时,此问题已解决:

  • 问题内容: 如何使用sql在sql server中获取整个月份的名称? 我找不到使用或的方法。 基本上,我需要这样的格式: 2009年4月1日 。 问题答案: 或不带逗号的日期在日期和年份之间,可以使用以下命令

  • RT-Thread 完整版串口的驱动开发 与 nano 版串口不同的是,完整版的串口基于设备驱动框架,使用完整版的串口可以使用 RT-Thread 丰富的组件及软件包。如 AT 组件,modbus 软件包等 配置默认串口 使用 RT-Thread Studio 新建基于 v4.0.2 的工程,界面如下图所示 配置过程可总结为以下步骤: 定义自己的工程名及工程生成文件的存放路径 选择基于芯片 创建工

  • 我将angular2与angular2 fullcalendar一起使用。在我的项目中,我从后端获取数据。现在我的问题是,当我使用选择日期添加事件时,我希望它在日历上显示成功提交数据,而无需重新加载页面。以前我使用的是

  • 我在这里有我的日期来自我的API,我试图在其中解析到。我使用intl包尝试了以下方法,但我遇到了错误 未处理的异常:格式异常:尝试从 2020/07/07 09:47:54 在位置 20 读取 有人知道这里出了什么问题吗?

  • 问题内容: 我有很多必须以示例格式显示的字符串。我正在尝试确定今天是哪些弦乐。 我的问题是,时间快到了,我只需要比较一下日期即可。 接下来,我想检查时间是否在带有.after和.before的两个时间戳“ HH:mm:ss”之间,但是存在问题,日期几乎在那。 如何在日期和时间上拆分该解析的格式,以自己的方式处理每种格式? 如果相关的话,我正在Android Studio中工作。 问题答案: 使用J