You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Highcharts图表异常求助:数据显示在Y轴及小时平均值实现

问题排查与解决方案

一、解决图表数据以文本显示在Y轴的问题

问题原因

从数据库读取的voltage、current_A、power_W字段为字符串类型,Highcharts无法将其识别为数值,因此直接以文本形式展示在Y轴,无法正常绘制折线图。

修复步骤

修改PHP读取数据的逻辑,将数值型字段强制转换为浮点类型:

<?php
$conn = mysqli_connect('localhost', 'root', 'raspberry', 'raspberry_sistem');

$query = "SELECT voltage, current_A, power_W, timestamp FROM readings";
$result = mysqli_query($conn, $query);

$data = array();
while ($row = mysqli_fetch_assoc($result)) {
  // 将字符串类型的数值转为浮点型
  $row['voltage'] = (float)$row['voltage'];
  $row['current_A'] = (float)$row['current_A'];
  $row['power_W'] = (float)$row['power_W'];
  $data[] = $row;
}

$json_data = json_encode($data);
?>

前端代码无需修改,此时Highcharts会识别到数值类型,正常绘制折线图。

二、实现小时平均值统计

修改SQL查询语句

通过SQL的GROUP BY按小时分组,结合AVG()函数计算每小时的平均值:

$query = "SELECT 
    DATE_FORMAT(timestamp, '%Y-%m-%d %H:00:00') AS hour_timestamp,
    AVG(voltage) AS avg_voltage,
    AVG(current_A) AS avg_current,
    AVG(power_W) AS avg_power
FROM readings
GROUP BY hour_timestamp
ORDER BY hour_timestamp";

调整前端代码适配新数据

修改前端的data映射逻辑,对应新的字段名:

Highcharts.chart('container', {
  title: {
    text: '每小时读数平均值'
  },
  xAxis: {
    title: {
      text: '时间(小时)'
    },
    categories: data.map(function(d) {
      return d.hour_timestamp;
    })
  },
  yAxis: [{
    title: {
      text: '平均电压'
    },
    opposite: true
  }, {
    title: {
      text: '平均电流'
    }
  }, {
    title: {
      text: '平均功率'
    },
    opposite: true
  }],
  series: [{
    name: '平均电压',
    type: 'line',
    yAxis: 0,
    data: data.map(function(d) {
      return d.avg_voltage;
    })
  }, {
    name: '平均电流',
    type: 'line',
    yAxis: 1,
    data: data.map(function(d) {
      return d.avg_current;
    })
  }, {
    name: '平均功率',
    type: 'line',
    yAxis: 2,
    data: data.map(function(d) {
      return d.avg_power;
    })
  }]
});

说明

  • DATE_FORMAT(timestamp, '%Y-%m-%d %H:00:00')将时间戳格式化为“年-月-日 时:00:00”,确保按整小时分组。
  • ORDER BY hour_timestamp保证时间序列按顺序展示。

内容的提问来源于stack exchange,提问作者samet pala

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 05:05:19