Google饼图标题显示但图表不渲染,寻求技术解决
排查Google饼图无法渲染的问题
看起来你的代码逻辑框架是对的,但图表不渲染大概率是数据格式错误或者容器/加载配置问题,我帮你梳理几个关键排查点:
1. 修复数据类型错误(最可能的原因)
Google饼图要求第二个字段是纯数值类型,但你现在用引号把数值包裹成了字符串:
echo "['Auditing','" . $row[0] . "'],['Assests','" . $row[1] . "'], ...";
这样生成的JS数据会是['Auditing', '123'],字符串型的数值无法被图表引擎识别。你需要去掉数值的引号,改成:
echo "['Auditing', " . $row[0] . "],['Assests', " . $row[1] . "], ['Advertisements', " . $row[2] . "],['Bank Charges', " . $row[3] . "], ['Driver Bata', " . $row[4] . "],['Electricity'," . $row[5] . "],['Food'," . $row[6] . "],['Maintenance'," . $row[7] . "], ['Printing'," . $row[8] . "],['Salary'," . $row[9] . "], ['Office Supplies'," . $row[10] . "],['Taxes'," . $row[11] . "],['Telephone and Internet'," . $row[12] . "],['Petrol for Generator'," . $row[13] . "],['Others'," . $row[14] . "]";
这样生成的数值是纯数字格式(比如['Auditing', 123]),图表才能正确解析并渲染。
2. 确保容器有明确尺寸
你的#pieWeekdiv没有设置宽高,Google Charts需要容器有固定尺寸才能正常渲染,给div加上样式:
<div id="pieWeek" style="width: 800px; height: 500px;"></div>
3. 清理Google Charts加载冗余代码
你同时引入了已废弃的jsapi和官方推荐的loader.js,这可能导致加载冲突,只保留loader.js即可,删除这一行:
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
4. 验证查询数据是否有效
先确认PHP查询到的数据是否符合预期,在PHP代码里加入调试代码:
$row=mysqli_fetch_array($resultPieWeek); var_dump($row); // 查看是否有15个有效数值,是否存在NULL或0的情况
如果所有值都是NULL或者0,图表可能因为没有有效数据而不显示,需要检查你的WHERE date between date_sub(now(),INTERVAL 1 WEEK) and now()条件是否匹配数据库中日期字段的格式。
5. 查看浏览器控制台报错
打开浏览器的开发者工具(按F12),切换到「Console」标签,查看是否有JS报错信息(比如数据格式错误、资源加载失败等),这是快速定位前端问题的核心手段。
按照以上步骤调整后,应该能解决图表不渲染的问题。
内容的提问来源于stack exchange,提问作者Stat-Geek
相关产品推荐
相关产品推荐

