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

X轴的Chart.js不采取类型:'time'

漆雕誉
2023-03-14

我一直试图绘制时间序列数据(来自温度传感器)使用Chart.js库。python应用程序使用Flask将值和标签列表传递到. html模板文件。

经过一些迭代之后,我设法以正确的时间格式获得标签——现在由图表“newdate()”处理——并在绘制的图表X轴刻度上被视为有效日期。

然而,读数在X轴上等间距(刻度分布是线性的),而不是按时间间隔。打印刻度的格式也需要截断为HH: mm: ss(因为数据范围将在几个小时内)

几个回答的问题建议设置选项:{刻度:{xAx:[type: as'time'...然后重置各种其他时间刻度参数。然而,当我将注释的行设置xAxestype添加到时间时,我的代码就会崩溃(图表停止渲染)。为什么??尤其是标签似乎被认为是日期时间戳!?

我尝试过使用可用的代码片段并阅读图表。js文档-但我没有想到解决方案。任何关于时间轴格式的建议,以及合适的刻度分布和标签,都将不胜感激。我不熟悉javascript和stackoverflow,所以请原谅任何明显的错误并提供指导。提前谢谢

这是沿X轴绘制的带有日期时间戳的图表

下面是生成图表的JS代码。它读取从Python Flask应用程序接收的数据。该行不工作已被注释掉:

<script>

 new Chart(document.getElementById("line-chart"), {
  type: 'line',
  data: {
    labels : [{% for item in labels %}
               new Date("{{item}}"),
              {% endfor %}],
    datasets: [{ 
        data : [{% for item in values %}
                      {{item}},
                    {% endfor %}],
        label: "degrees centigrade",
        borderColor: "#3e95cd",
        fill: false
      }
    ]
  },
  options:{
    scales:{xAxes:[

//        type:'time'    //THIS BREAKS DOWN when uncommented

                  ]},
    title: {
      display: true,
      text: 'Temperature Sensor 1'
    	}   
  }
 });
 
</script>

为了完整起见,正在发送的Python Flask数据如下所示:

@app.route('/trial', methods=['GET'])
def trial():
    temps_alt = [30.05,30.0,29.5,29.2,30.2,30.50]
    times_alt = ['2013-02-08 09:30:26', '2013-02-08 09:30:36', '2013-02-08 09:30:56',
                 '2013-02-08 09:33:26', '2013-02-08 09:34:26', '2013-02-08 09:34:56']
    return flask.render_template('chart_ts_curve.html', values=temps_alt, labels=times_alt)

共有1个答案

邴英毅
2023-03-14

你忘了加括号了。

完整的片段可以在这里找到

 类似资料:
  • 我正在使用一个chart-js条形图,它必须放在一个小的div中,所以我在寻找一种方法来使x轴上的标签水平而不是对角线。重点是为实际的条获得尽可能多的高度,因为现在标签占据了几乎40%的可用空间。 这是我的代码: 我已经暂时禁用了xAxis标签。它的工作,但理想情况下,我希望他们是水平的。想法?

  • 我目前正在尝试从blockchain.info获取数据,并在一个简单的JavaScript文件中的Chart.js上显示它。 如果我的xAxes类型是“线性”的,它就工作得很好,但是在这种情况下,x轴上的标签显示的是数字unix时间戳。 我希望标签按天显示(如2018年1月27日)或按月分组(图表上30个点,1个标签- "未捕获的错误:找不到Chart.js - Moment.js!您必须将其包含

  • 注意:即使某些“区域”没有值,也应该显示标签0、0.1、0.2、0.3、0.4和0.5。我尝试了我的不同选项,我发现的“最佳”是控制要显示的标签数量,但它不是我想要的:

  • 我的任务是比较一些当前时期的日志和旧的日志。例如——本周日志和前一周日志。但是当我创建这样的第二个轴时 我有一个空的部分,因为我所有的xAx都是“时间”类型的,并且点的时间不一样(这是绝对正常的行为)。我有这种情况 但是我需要制作独立的轴,例如:顶部轴开始于30sep,结束于3oct底部轴开始于7oxt,结束于10oct,它们的长度都相同 我试着创造这样的斧头 但是如果没有“ticks”属性,我会

  • 很好的一天。我不熟悉使用VSCode键入脚本。 获取以下错误: > 错误TS2322:类型'()= 代码: DTO。输电系统 LinkedObject.ts 我正在尝试使用上述接口方法实例化类: TravelClientFormPopulator.ts 任何帮助都将不胜感激。

  • 我想使用chartjs折线图来可视化我的数据点。默认情况下,Chartjs似乎会为图形设置动画,但不会为x轴上的值设置动画。x轴仅以离散步骤移动。 是否有任何方法也可以启用轴上的动画? 谢谢