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

时间图表.js

丁恩
2023-03-14

我正在学习如何使用图表.js并且我想要一个图表,该图形以格式为“h?h:mm”在一天中的不同时间(x轴)显示随机值。

在 x 轴中,我想要一个小时的固定步骤,从上午 12 点 (0:00) 开始,到上午 8 点(8:00)结束。

和数据,例如(x=4:45,y=67)在te对应的x刻度(4:00和5:00之间的3/4)

我尝试了以下方法:

var cfg = {
  type: 'line',
  data: {
    labels: ['00:00', '01:35', '02:20', '03:05', '04:07', '04:57', '05:25', '06:08', '07:10'],
    datasets: [{
      data: [
        randomScalingFactor(18, 45),
        randomScalingFactor(18, 45),
        randomScalingFactor(18, 45),
        randomScalingFactor(18, 45),
        randomScalingFactor(18, 45),
        randomScalingFactor(18, 45),
        randomScalingFactor(18, 45),
        randomScalingFactor(18, 45),
        randomScalingFactor(18, 45)
      ],
      label: "Improved ETA",
      borderColor: "#e67e22",
      borderWidth: 2,
      fill: false,
      lineTension: 0
    }]
  },
  options: {
    responsive: true,
    maintainAspectRatio: false,
    title: {
      display: true,
      text: 'Improved ETA',
      fontSize: 14,
      fontFamily: 'Arial',
      fontColor: '#000'
    },
    legend: {
      display: false
    },
    scales: {
      xAxes: [{
        ticks: {
          padding: 12
        },
        gridLines: {
          color: 'rgba(0, 0, 0, 0.06)',
          zeroLineColor: 'rgba(0, 0, 0, 0.06)',
          drawTicks: false
        }
      }],
      yAxes: [{
        ticks: {
          suggestedMin: 0,
          suggestedMax: 80,
          padding: 12
        },
        scaleLabel: {
          display: true,
          labelString: 'mins'
        },
        gridLines: {
          color: 'rgba(0, 0, 0, 0.06)',
          zeroLineColor: 'rgba(0, 0, 0, 0.06)',
          drawTicks: false
        }
      }]
    }
  }
};

window.onload = function() {
  var ctx = document.getElementById('foo').getContext('2d');
  window.myLine = new Chart(ctx, cfg);
};
<div style="width: 600px; height: 400px;">
  <canvas id="foo"></canvas>
</div>

但这不是我想要的,因为 X 轴刻度线取标签的值(x 数据)。更糟糕的是,价格变动之间的空间总是相同的(例如,从10:30到10:40,与8:00到9:00的空间相同)。

PD:我也读过关于使用这个时刻的文章。js图表。js包,因为时间图:https://www.chartjs.org/samples/latest/scales/time/line.html

共有1个答案

姚韬
2023-03-14

首先,您应该省略<code>标签和一个<code>y

data: [
  { t: '4:45', y: 67 },
  { t: '6:12', y: 45 },
  { t: '7:33', y: 56 },
],

对于上述数据,必须按如下方式定义 xAxes.time 选项:

time: {
  parser: 'H:mm',
  unit: 'hour',
  stepSize: 1,
  displayFormats: {
    hour: 'H:mm'
  },
  tooltipFormat: 'H:mm'
},

此外,您还可以定义<code>xAxis。勾选选项,如下所示:

ticks: {
  min: '0:00', 
  max: '8:00' 
}

正如你已经注意到的,图表。js内部使用了这个时刻。js的时间轴功能。因此,您应该使用图表的捆绑版本。js,包括力矩。js在一个文件中。

请看看下面的可运行代码,看看它是如何工作的。

new Chart('myChart', {
  type: 'line',
  data: {
    datasets: [{
      label: 'My Dataset',      
      data: [
        { t: '4:45', y: 67 },
        { t: '6:12', y: 45 },
        { t: '7:33', y: 56 },
      ],
      borderColor: 'blue',
      fill: 'false',
    }]
  },
  options: {
    scales: {
      yAxes: [{
        ticks: {
          beginAtZero: true
        }
      }],
      xAxes: [{
        type: 'time',
        time: {
          parser: 'H:mm',
          unit: 'hour',
          stepSize: 1,
          displayFormats: {
            hour: 'H:mm'
          },
          tooltipFormat: 'H:mm'
        },
        ticks: {
          min: '0:00', 
          max: '8:00' 
        }
      }]      
    }
  }
});
html prettyprint-override"><script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.4/Chart.bundle.min.js"></script>
<canvas id="myChart" height="90"></canvas>
 类似资料:
  • Highcharts 曲线图 以下实例演示了时间间隔图表。 我们在前面的章节已经了解了 Highcharts 配置语法。接下来让我们来看下如何配置。 实例 文件名:highcharts_spline_time.htm <html> <head> <meta charset="UTF-8" /> <title>Highcharts 教程</title> <script src="http://ap

  • 时间视图中,在时间和日期旁可找到以下图标。 飞行模式已开启。您的移动电话及配件的所有无线连接已断开。 请勿打扰模式已开启。显示屏不会因手腕运动而亮起,且您将不会收到智能通知。 振动闹铃已设置。您可以在 Flow 应用程式中设置闹铃。 已配对手机已断开连接,并启用智能通知。按住侧边按钮,重新连接。

  • Highcharts 曲线图 以下实例演示了基于时间的曲线图表。 我们在前面的章节已经了解了 Highcharts 配置语法。接下来让我们来看个完整实例: 配置 图表 配置可缩放图表。 chart.zoomType 指定了用户可以拖放的尺寸,用户可以通过拖动鼠标来放大,可能值是x,y或xy: var chart = { zoomType: 'x' }; plotOptions 使用 pl

  • 我想创建一个chart.js折线图,y轴为数值,x轴为日期。然而,当我填充图表时,x轴上充满了不应该包含的刻度(您可以看到我的数据被移动到最右边)。当我登录< code>chart.data.labels时,一切似乎都是正确的;这是输出:< code> Array(3) ["10/23/2020,12:00:00 AM "," 10/27/2020,12:00:00 AM "," 10/28/20

  • 时间和空间最大的区别在于,时间不能被复用 -- 弗斯特梅里克 在上面两章中,我们探讨了可以用CAAnimation和它的子类实现的多种图层动画。动画的发生是需要持续一段时间的,所以计时对整个概念来说至关重要。在这一章中,我们来看看CAMediaTiming,看看Core Animation是如何跟踪时间的。

  • Chart.js (v2.7.2) 似乎会为使用时间刻度的轴动态呈现折线图轴标签。这在更新数据集后使用 方法时会产生一个独特的问题。 启动一个以方法结尾的跟踪: 因为我中没有元素 - 每个数据集都有自己的标签,并且时间刻度标签是自动生成的 - 上面的代码有效地阻止了我在时间缩放图表上使用。 我尝试了结合使用< code > destroy()/< code > clear()和< code>ren