gpt4 book ai didi

javascript - CanvasJS 折线图生成?

转载 作者:行者123 更新时间:2023-12-03 10:05:25 24 4
gpt4 key购买 nike

我正忙着尝试制作一个用于实时数据显示的 javascript 图表。我找到了这个 CanvasJS API。默认代码 specific chart他们的网页上的内容很好,但是当然,他们获取数据的部分,他们将变量数组留空并使用数学随机化数据函数,以便随机生成特定数据并在图表中使用。

但是,我想用来 self 想使用的特定表的数据库数据来填充该数组!

我已经尝试了很多方法,但如果我实现了我的部分,图表将不再显示。我做错了什么?

这是我使用的 3 个代码:

默认代码(仅供比较):

<!DOCTYPE HTML>
<html>

<head>
<script type="text/javascript">
window.onload = function () {

var dps = []; // dataPoints

var chart = new CanvasJS.Chart("chartContainer",{
title :{
text: "Live Random Data"
},
data: [{
type: "line",
dataPoints: dps
}]
});

var xVal = 0;
var yVal = 100;
var updateInterval = 20;
var dataLength = 500; // number of dataPoints visible at any point

var updateChart = function (count) {
count = count || 1;
// count is number of times loop runs to generate random dataPoints.

for (var j = 0; j < count; j++) {
yVal = yVal + Math.round(5 + Math.random() *(-5-5));
dps.push({
x: xVal,
y: yVal
});
xVal++;
};
if (dps.length > dataLength)
{
dps.shift();
}

chart.render();

};

// generates first set of dataPoints
updateChart(dataLength);

// update chart after specified time.
setInterval(function(){updateChart()}, updateInterval);

}
</script>
<script type="text/javascript" src="/assets/script/canvasjs.min.js"></script>
</head>
<body>
<div id="chartContainer" style="height: 300px; width:100%;">
</div>
</body>
</html>

我自己的图表代码,基于上述代码:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title></title>
<script src="jquery.js"></script>
<script src="jquery.canvasjs.js" ></script>
<script src="canvasjs.js"></script>

<script type="text/javascript">
$(document).ready(function () {

$.getJSON("data.php", function (result) {

var chart = new CanvasJS.Chart("chartContainer", {
data: [
{
dataPoints: result
}
]
});

chart.render();
});
});
</script>
</head>
<body>

<div id="chartContainer" style="width: 800px; height: 380px;"></div>

</body>
</html>

和我的 data.php 显示以下输出:

[{"x":"1","y":"5"},{"x":"2","y":"5"},{"x":"3","y":"4"},{"x":"4","y":"1"},{"x":"5","y":"8"},{"x":"6","y":"9"},{"x":"7","y":"5"},{"x":"8","y":"6"},{"x":"9","y":"4"},{"x":"10","y":"7"}]

 <?php
//header('Content-Type: application/json');
$con = mysqli_connect("localhost","root","","WebApplication");

// Check connection
if (mysqli_connect_errno($con))
{
echo "Failed to connect to DataBase: " . mysqli_connect_error();
}
else
{
$data_points = array();

$result = mysqli_query($con, "SELECT * FROM info");

while($row = mysqli_fetch_array($result))
{
$point = array("x" => $row['id'] , "y" => $row['acceleration']);

array_push($data_points, $point);
}

echo json_encode($data_points, 32); //define('JSON_NUMERIC_CHECK',32); // Since PHP 5.3.3

}
mysqli_close($con);



?>

希望您有足够的信息!

谢谢

米尔

编辑

我将“我自己的图表”中的代码交换为以下代码,基于以下@feedback-comment:Anjali Jain

-->

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title></title>
<script src="jquery.js"></script>
<script src="jquery.canvasjs.js" ></script>
<script src="canvasjs.js"></script>
<script type="text/javascript" src="canvasjs.min.js"></script>


<script type="text/javascript">
$(document).ready(function () {

$.getJSON("data.php", function (result) {

var dataPoints = [];

for (var i = 0; i <= result.length - 1; i++) {
dataPoints.push({ x: Number(result[i].x), y: Number(result[i].y) });
}

var chart = new CanvasJS.Chart("chartContainer", {
data: [
{
dataPoints: dataPoints
}
]
});

chart.render();
});
});
</script>
</head>
<body>

<div id="chartContainer" style="width: 800px; height: 380px;"></div>

</body>
</html>

然而,我还是一无所获。

最佳答案

当您直接传递字符串时,CanvasJS 要求 x 和 y 值为数字。您可以将它们转换为数字,如下所示

$.getJSON("data.php", function (result) {

var dataPoints = [];

for (var i = 0; i <= result.length - 1; i++) {
dataPoints.push({ x: Number(result[i].x), y: Number(result[i].y) });
}

var chart = new CanvasJS.Chart("chartContainer", {
data: [
{
dataPoints: dataPoints
}
]
});

chart.render();
});

关于javascript - CanvasJS 折线图生成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30383125/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com