这是我的数据库:
D b
我想在柱形图中显示每列的平均值,例如以下示例https://canvasjs.com/javascript-charts/multiple-axis-column-chart/
因此,蓝色的PD1和红色的PD2,蓝色的SVK1,红色的SVK2的平均值,依此类推。
我一直在尝试修改此示例代码:https : //canvasjs.com/php-charts/chart-data-from-database/
但我无法正常工作。这就是我尝试过的
$PD1 = $row['AVG(PD1)'];
$PD2 = $row['AVG(PD2)'];
array_push($dataPoints,"$PD1","$PD2");
array_push($dataPoints2, array("y"=> $dataPoints));
};
将非常感谢您的帮助!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
要实现您的需求,您需要先从数据库中正确地获取每列的平均值,然后将这些数据组织成适合CanvasJS图表的数据格式。根据您提供的信息,我假设您的数据库表结构包含至少两列PD1
和PD2
,并且您想要分别计算这两列的平均值,并以柱状图的形式展示。
下面是一个简化的示例,展示了如何从数据库获取平均值并准备数据点用于CanvasJS图表:
<?php
// 假设 $conn 是已经建立好的数据库连接
// 查询每列的平均值
$avg_PD1 = $conn->query("SELECT AVG(PD1) AS PD1_avg FROM your_table_name")->fetch_assoc()['PD1_avg'];
$avg_PD2 = $conn->query("SELECT AVG(PD2) AS PD2_avg FROM your_table_name")->fetch_assoc()['PD2_avg'];
// 准备数据点数组
$dataPoints = array(
array("label"=>"PD1", "y"=>$avg_PD1, "color"=>"#0074D9"), // 蓝色
array("label"=>"PD2", "y"=>$avg_PD2, "color"=>"#FF4136") // 红色
);
// 如果有其他列(例如SVK1, SVK2等),也按照同样的方式添加到$dataPoints数组中
// 将数据点数组传递给JavaScript部分
echo "<script>
var chartData = ".json_encode($dataPoints).";
// 在这里继续使用chartData来初始化CanvasJS图表
</script>";
?>
这段代码首先执行SQL查询来获取PD1
和PD2
列的平均值,然后将这些平均值构造成CanvasJS图表所需的数据点格式。每个数据点包含一个标签(label
)和对应的值(y
),以及可选的颜色(color
)。最后,通过json_encode
函数将PHP数组转换为JavaScript可以理解的格式,并在页面上输出,以便在JavaScript代码中使用这些数据点来创建图表。
请确保替换your_table_name
为您的实际数据库表名,并且检查数据库连接 $conn
是否已经正确建立。如果还有其他列需要处理,只需按照相同模式添加更多的查询和数据点即可。