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

如何让Google Charts识别JSON数据并正常绘制折线图?

Google Charts Line Chart Shows No Data (Only Empty Framework)

我来帮你搞定这个头疼的问题!从你的代码和数据流程来看,核心问题大概率出在数据格式匹配或者Google Charts对数据的解析逻辑上,我给你拆解几个可能的原因和对应的解决办法:

1. 先排查addRows的输入格式问题

Google Charts的data.addRows()虽然支持对象数组,但有时候会因为细微的解析问题导致数据无法被识别。最稳妥的方式是把你的对象数组转换成二维数组再传入,避免格式兼容问题:

// 把原有的对象数组转换成Google Charts更易识别的二维数组格式
var formattedData = ar.map(item => [item.Time, item.Value]);
// 再添加到DataTable中
data.addRows(formattedData);

2. 字符串类型的时间可能拖了后腿

你现在把时间列定义成了string类型,虽然理论上可以显示,但Google Charts的折线图对连续时间轴的支持更稳定,字符串时间容易被当作离散类别,偶尔会出现数据点不渲染的情况。建议把时间字符串转换成datetime类型(哪怕是当天的时间,也可以拼接一个基准日期):

// 先定义一个当天的基准日期
const today = new Date();
// 转换数据格式
var formattedData = ar.map(item => {
  // 把时分秒拆分出来,设置到基准日期上
  const [hours, minutes, seconds] = item.Time.split(':');
  const timePoint = new Date(today);
  timePoint.setHours(hours, minutes, seconds);
  return [timePoint, item.Value];
});

// 注意这里要把列类型改成'datetime'
data.addColumn('datetime', 'Time');
data.addColumn('number', 'Value');
data.addRows(formattedData);

这样处理后,横轴会变成连续的时间轴,数据点不仅能正常显示,还能支持时间缩放这类交互功能。

3. 确认Google Charts库加载是否正确

有时候库加载不完整或者执行顺序错了,也会出现只显示框架的情况。一定要按照官方规范加载:

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
  // 先加载图表库
  google.charts.load('current', {'packages':['corechart']});
  // 等库加载完成后再执行绘制代码
  google.charts.setOnLoadCallback(drawChart);

  function drawChart() {
    // 把你的图表绘制代码全部放在这个函数里
    var data = new google.visualization.DataTable();
    // ... 剩下的代码
  }
</script>

绝对不能跳过setOnLoadCallback直接执行绘制代码,否则库还没加载好就会出问题。

4. 验证数据是否真的被传入DataTable

可以在代码里加一行调试代码,确认数据确实被添加进去了:

data.addRows(formattedData);
// 输出DataTable的JSON内容,检查是否有数据
console.log(data.toJSON());

如果控制台输出的JSON里没有你期望的时间和数值,那就要回头检查PHP转JSON的步骤是否正确了。

建议你先从第一点开始尝试,换成二维数组的方式,大部分情况下这个就能解决问题。如果还是不行,再试试把时间转换成datetime类型。

内容的提问来源于stack exchange,提问作者CBX Straight 6

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:51:57