开发者社区 问答 正文

具有数据库列平均值的CanvasJS图表

这是我的数据库:

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));
};

将非常感谢您的帮助!

展开
收起
社区秘书 2019-12-10 13:08:14 685 分享 版权
阿里云 AI 助理回答

要实现您的需求,您需要先从数据库中正确地获取每列的平均值,然后将这些数据组织成适合CanvasJS图表的数据格式。根据您提供的信息,我假设您的数据库表结构包含至少两列PD1PD2,并且您想要分别计算这两列的平均值,并以柱状图的形式展示。

下面是一个简化的示例,展示了如何从数据库获取平均值并准备数据点用于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查询来获取PD1PD2列的平均值,然后将这些平均值构造成CanvasJS图表所需的数据点格式。每个数据点包含一个标签(label)和对应的值(y),以及可选的颜色(color)。最后,通过json_encode函数将PHP数组转换为JavaScript可以理解的格式,并在页面上输出,以便在JavaScript代码中使用这些数据点来创建图表。

请确保替换your_table_name为您的实际数据库表名,并且检查数据库连接 $conn 是否已经正确建立。如果还有其他列需要处理,只需按照相同模式添加更多的查询和数据点即可。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答标签:
问答地址: