Chart.js中具有线性时间刻度的线图

hjqgdpho  于 11个月前  发布在  Chart.js
关注(0)|答案(1)|浏览(143)

我尝试使用Chart.js 3.3.2来显示一些具有等间距x日期轴的线图。就像他们给予的例子here
我无法得到这个例子的简单版本(见下面的片段),因为它输出错误:
错误:此方法未实现:检查是否提供了完整的日期适配器。
我没有尝试实现整个示例,因为它依赖于外部定义的函数和值。
我很久以前问过一个类似的问题(Chart.js creating a line graph using dates),但是重新阅读了那里的答案,它在这里对我没有帮助(特别是这里的大多数答案也集中在Chart.js 2而不是3)。
我将非常感谢这里的任何帮助(我发现这里的文档很难理解)。

const data = {
  labels: [
    new Date(86400000), // Day 1
    new Date(2*86400000), // Day 2
    new Date(3*86400000), // Day 3
    new Date(4*86400000), // Day 4
    new Date(6*86400000), // Day 6
    new Date(7*86400000), // Day 7
    new Date(13*86400000) // Day 13
  ],
  datasets: [{
    label: 'My First dataset',
    data: [1,3,4,5,6,7,8]
  }]
};

const config = {
  type: 'line',
  data: data,
  options: {
    scales: {
      x: {
        type: 'time'
      }
    }
  }
};

let ctx = document.querySelector("canvas").getContext("2d");
let chart = new Chart(ctx,config);
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <title>repl.it</title>
    <link href="style.css" rel="stylesheet" type="text/css" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.3.2/chart.min.js"></script>
  </head>
  <body>
    <canvas></canvas>
    <script src="script.js"></script>
  </body>
</html>
nnt7mjpx

nnt7mjpx1#

您需要添加3.x迁移指南中提供的日期适配器
(在页面中搜索“可用适配器”)
https://www.chartjs.org/docs/latest/migration/v3-migration.html
下面是一个工作示例

const data = {
  labels: [
    new Date(86400000), // Day 1
    new Date(2 * 86400000), // Day 2
    new Date(3 * 86400000), // Day 3
    new Date(4 * 86400000), // Day 4
    new Date(6 * 86400000), // Day 6
    new Date(7 * 86400000), // Day 7
    new Date(13 * 86400000), // Day 13
  ],
  datasets: [
    {
      label: "My First dataset",
      data: [1, 3, 4, 5, 6, 7, 8],
    },
  ],
};

let ctx = document.querySelector("canvas").getContext("2d");

let chart = new Chart(ctx, {
  type: "line",
  data: data,
  
  options: {
    scales: {
      x: {
        type: "time",
      }
    },
  },
});
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]"></script>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]"></script>
    <title>repl.it</title>
  </head>
  <body>
    <canvas></canvas>
    <script src="new.ts"></script>
  </body>
</html>

相关问题