我正在尝试使用MongoDB的JSON响应来绘制线路图。我认为我的代码不在一个地方,我一直在收到此错误
我尝试过。
myurl = "/api/humidity"
$(function() {
$.ajax({
type: "GET",
url: myurl,
cache: false,
dataType : "json",
success: function (data1) {
// console.log(data);
$.each(data1.when, function(position, when) {
if (data1.when) {
chartData.labels.push(data1.when);
} else {
chartData.labels.push('');
}
chartData.datasets[0].data.push(data.message);
});
}
})
})
var chartData = {
labels: [],
datasets: [
{
label: "Humidity",
fillColor: "rgba(220,220,220,0.2)",
strokeColor: "rgba(220,220,220,1)",
pointColor: "rgba(220,220,220,1)",
pointStrokeColor: "#fff",
pointHighlightFill: "#fff",
pointHighlightStroke: "rgba(220,220,220,1)",
data: []
},
]
};
var ctx = document.getElementById("myChart").getContext("2d");
var myChart = new Chart(ctx).Line (chartData, {
});
最终,我希望我的代码迭代DB中的项目。
这就是我的JSON数据的样子
[{
"_id": "585b544f5c86b6c8537c34d6",
"topic": "Humidity",
"message": 23,
"when": "2016-12-22T04:19:27.000Z"
}, {
"_id": "585b54505c86b6c8537c34d7",
"topic": "Humidity",
"message": 23,
"when": "2016-12-22T04:19:28.000Z"
}, {
"_id": "585b54515c86b6c8537c34d8",
"topic": "Humidity",
"message": 23,
"when": "2016-12-22T04:19:29.000Z"
}, {
"_id": "585b54525c86b6c8537c34d9",
"topic": "Humidity",
"message": 23,
"when": "2016-12-22T04:19:30.000Z"
}, {
"_id": "585b54535c86b6c8537c34da",
"topic": "Humidity",
"message": 23,
"when": "2016-12-22T04:19:31.000Z"}]
我将感谢任何帮助或建议。
您可以尝试使用Chart.js版本2.2
var cdata = [{
"_id": "585b544f5c86b6c8537c34d6",
"topic": "Humidity",
"message": 23,
"when": "2016-12-22T04:19:27.000Z"
}, {
"_id": "585b54505c86b6c8537c34d7",
"topic": "Humidity",
"message": 23,
"when": "2016-12-22T04:19:28.000Z"
}, {
"_id": "585b54515c86b6c8537c34d8",
"topic": "Humidity",
"message": 23,
"when": "2016-12-22T04:19:29.000Z"
}, {
"_id": "585b54525c86b6c8537c34d9",
"topic": "Humidity",
"message": 23,
"when": "2016-12-22T04:19:30.000Z"
}, {
"_id": "585b54535c86b6c8537c34da",
"topic": "Humidity",
"message": 23,
"when": "2016-12-22T04:19:31.000Z"
}]
var labeldata = [];
var chrtdata = [];
for(var i =0; i < cdata.length; i++)
{
labeldata.push(cdata[i].when);
chrtdata.push(cdata[i].message)
}
var ctx = document.getElementById("myChart").getContext("2d");
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: labeldata,
datasets: [{
label: 'Humidity',
data: chrtdata,
backgroundColor: "rgba(153,255,51,0.6)"
}]
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.2.2/Chart.min.js"></script>
<div>
<canvas id="myChart"></canvas>
</div>
您应该像这样设置Mychart:
var myChart = Chart.Line(ctx, {
data: chartData,
options: options
});
变量" CTX"应传递到图表函数。
http://www.chartjs.org/docs/#line-chart