javascript - 谷歌图表问题与图表上的值
问题描述
嘿,任何人都可以帮助我解决我在使用谷歌图表时遇到的问题。
问题是数字没有按 1、2、3 等比例缩放……您可以在图表左侧的图像上看到。
JavaScript 和 PHP 代码
<script type="text/javascript">
google.charts.load('current', {'packages':['bar']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Data', 'Count' , 'Approved' , 'Drafted'],
<?php
$elements_text = ['Posts' , 'Categories', 'Users','Comments'];
$element_count =[$post_count,$categories_count,$users_count,$comment_count];
$element_published = [$published_posts,'0',$admins_count,$approved_comments_count];
$element_drafted = [$drafted_posts,'0',$subscriber_count,$unapproved_comments_count];
for($i =0; $i<4 ; $i++){
echo "['{$elements_text[$i]}'" . "," . "'{$element_count[$i]}'" . "," . "'{$element_count[$i]}'" . "," . "'{$element_drafted[$i]}'],";
}
?>
]);
var options = {
chart: {
title: 'Admin data',
subtitle: 'Charst panel',
}
};
var chart = new google.charts.Bar(document.getElementById('columnchart_material'));
chart.draw(data, google.charts.Bar.convertOptions(options));
}
</script>
你可以看到 6 小于 0 :D
解决方案
至关重要的是,这不是将数据从 PHP 传递到 JavaScript 的方法。在任何情况下都不要尝试构建自己的 JSON 或其他此类结构;它永远不会始终如一地工作。用于json_encode()
此。除了正确转义字符串之外,它还确保整数被正确传递。
<?php
$elements = [
["Data", "Count", "Approved", "Drafted"],
["Posts", $post_count, $published_posts, $drafted_posts],
["Categories", $categories_count, 0, 0],
["Users", $users_count, $admins_count, $subscriber_count],
["Comments", $comment_count, $approved_comments_count, $unapproved_comments_count],
];
?>
<script>
google.charts.load("current", {packages: ["bar"]});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
const elements = <?= json_encode($elements) ?>;
const data = google.visualization.arrayToDataTable(elements);
const options = {chart: {title: "Admin data", subtitle: "Chart data"}};
const chart = new google.charts.Bar(document.getElementById("columnchart_material"));
chart.draw(data, google.charts.Bar.convertOptions(options));
}
</script>
如果您在修复此代码后仍然遇到问题,我建议您查看您传递给图表的数据,因为它可能不是您所期望的。由于您的原始代码正在重复数据,$element_count[$i]
这可能是您的问题。
推荐阅读
- php - 未知属性 – yii\base\UnknownPropertyException
- python - 从 numpy 到 Pytorch 的矩阵乘法(逐元素)
- android-studio - 为什么 Android Studio (3.4) 创建的 .gitignore 不排除所有 `/.idea`?
- python - 基于用户输入读取 CSV 文件的 Python 代码
- ios - 编辑 mapbox-gl-native iOS SDK 发出的所有 HTTP 请求的标头
- reactjs - 基于道具的useEffect函数打开/关闭模态仅在第一次工作(点击)
- amazon-web-services - 在 aws 上部署 Corda 节点
- python-3.x - 为什么int计算比字符串转换慢?
- api - 如果功能 1 和功能 2 使用数据驱动,并且功能 1 对一个数据失败,如何忽略功能 2 对相同数据的运行
- sql-server - T SQL Cursor 仅更新具有相同值的行