CanvasJS实时折线图
CanvasJS real time line chart
我目前正忙于为老年患者建立商业智能环境。老人家戴的手环可以测量加速度和心率。
心率部分将是静态图表(不是实时图表),我已经完成了那个。整个环境实际上已经完成了。实时加速度折线图除外
所以我想使用 CanvasJS 的实时生命图表,因为他们提供的似乎是正确的。问题是我很了解 javascript。
这是真实折线图的代码:
<!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>
如您所见,它是一个真实的图表,但它的行为与随机(静态)数据无关。我的数据库中充满了加速度计生成的数据。
我的问题是:如何使此图表使用我数据库中的数据而不是随机数据?我正在考虑制作一个充满我的数据库数据的数组,然后使用该数组的变量作为图表所用数据的来源。但我不知道。
希望我已经给了你足够的信息。
你可以找到答案here。
只是为了让答案保留在这里,以防 link 损坏。
以下是如何在 CanvasJS 中显示 MySQL 数据,
- 创建一个 PHP 服务,其中 return 数据采用 JSON 格式。
- HTML 向服务器 AJAX 请求并获取数据的页面。获取数据后,它会呈现一个图表。
示例:
1. PHP 服务于 return JSON 数据
<?php
header('Content-Type: application/json');
$con = mysqli_connect("127.0.0.1","user","password","canvasjssampledb");
// 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 sales");
while($row = mysqli_fetch_array($result))
{
$point = array("label" => $row['product'] , "y" => $row['total_sales']);
array_push($data_points, $point);
}
echo json_encode($data_points, JSON_NUMERIC_CHECK);
}
mysqli_close($con);
?>
2。 HTML 获取数据并呈现图表的页面
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title></title>
<script src="jquery.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>
我目前正忙于为老年患者建立商业智能环境。老人家戴的手环可以测量加速度和心率。
心率部分将是静态图表(不是实时图表),我已经完成了那个。整个环境实际上已经完成了。实时加速度折线图除外
所以我想使用 CanvasJS 的实时生命图表,因为他们提供的似乎是正确的。问题是我很了解 javascript。
这是真实折线图的代码:
<!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>
如您所见,它是一个真实的图表,但它的行为与随机(静态)数据无关。我的数据库中充满了加速度计生成的数据。
我的问题是:如何使此图表使用我数据库中的数据而不是随机数据?我正在考虑制作一个充满我的数据库数据的数组,然后使用该数组的变量作为图表所用数据的来源。但我不知道。
希望我已经给了你足够的信息。
你可以找到答案here。
只是为了让答案保留在这里,以防 link 损坏。
以下是如何在 CanvasJS 中显示 MySQL 数据,
- 创建一个 PHP 服务,其中 return 数据采用 JSON 格式。
- HTML 向服务器 AJAX 请求并获取数据的页面。获取数据后,它会呈现一个图表。
示例:
1. PHP 服务于 return JSON 数据
<?php
header('Content-Type: application/json');
$con = mysqli_connect("127.0.0.1","user","password","canvasjssampledb");
// 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 sales");
while($row = mysqli_fetch_array($result))
{
$point = array("label" => $row['product'] , "y" => $row['total_sales']);
array_push($data_points, $point);
}
echo json_encode($data_points, JSON_NUMERIC_CHECK);
}
mysqli_close($con);
?>
2。 HTML 获取数据并呈现图表的页面
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title></title>
<script src="jquery.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>