【发布时间】:2016-12-02 09:26:15
【问题描述】:
我对谷歌图表有疑问。我已经为这个问题苦苦挣扎了两天,似乎找不到解决方案。
我想创建一个监控系统,我可以在其中看到有两条线的不断变化的折线图。我在 JS 代码中生成数据(至少现在是这样)。
我不知道我做错了什么。我可以使用非常简单的静态示例使图表可见,但是一旦我尝试向图表添加一些数据,它就会停止绘制。
当前版本的错误是:
“未捕获的类型错误:无法读取未定义的属性‘长度’”
但这是我第 n 次尝试向图表添加更多数据的不同方法以及第 n 个不同的错误。 因此,如果有人知道将数据添加到谷歌图表的工作原理,那就太好了。
提前致谢。
setInterval(function() {
//this is how I create a random data and call the drawChart function.
var temperature = (Math.random() * (35 - 30) + 30).toFixed(1),
humidity = (Math.random() * (40 - 15) + 15).toFixed(1),
timestamp = new Date();
google.charts.setOnLoadCallback(drawChart(timestamp, temperature, humidity));
}, 5000);
function drawChart(timestamp, temperature, humidity) {
//Cast temperature to proper format for the chart
//This works...don't understand why but it does.
temperature = parseFloat("temperature");
humidity = parseFloat("humidity");
// Define the chart to be drawn.
var data = new google.visualization.DataTable();
if (data[0].length == 0) {
var datetime = new Date();
data.addColumn('datetime', 'Time');
data.addColumn('number', 'Temperature');
data.addColumn('number', 'Humidity');
data.addRow(datetime, 0, 0);
var options = {
'title' : 'Temperature and Humidity',
hAxis: {title: 'Time'},
vAxis: {title: 'Temperature and Humidity'},
'width':550,
'height':400
};
}
data.addRow(timestamp, temperature, humidity);
// Instantiate and draw the chart.
var chart = new google.visualization.LineChart(document.getElementById('monitor-chart'));
chart.draw(data, options);
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Projekti 1, sivusto</title>
<!-- Latest BOOTSTRAP minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"/>
<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<!-- Latest BOOTSTRAP JC-->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<!-- JS Generate new data Class -->
<script type="text/javascript" src="js/generate_data.js"></script>
<!-- GOOGLE CHARTS visualization -->
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load('current', {packages: ['corechart','line']});
</script>
<!-- My css file -->
<link rel="stylesheet" type="text/css" href="css/ulkoasu.css"/>
</head>
<body>
<article>
<h1>This is Monitor content</h1>
<div id="monitor-data"></div>
<div id="monitor-chart"></div>
</article>
</body>
</html>
【问题讨论】:
-
不,它在同一个文件 atm.一切都在 标签的末尾。
标签: javascript charts google-visualization