Javascript 来自php json的带时间的Google图表
我在countrows.php文件中有这个json输出:Javascript 来自php json的带时间的Google图表,javascript,jquery,json,charts,google-visualization,Javascript,Jquery,Json,Charts,Google Visualization,我在countrows.php文件中有这个json输出: [ { "time_stamp":"08:22:46 am", "ph":"8", "moist":"0" }, { "time_stamp":"08:22:50 am", "ph":"8", "moist":"0" }, { "time_stamp":"08:22:54 am", "ph":"8"
[
{
"time_stamp":"08:22:46 am",
"ph":"8",
"moist":"0"
},
{
"time_stamp":"08:22:50 am",
"ph":"8",
"moist":"0"
},
{
"time_stamp":"08:22:54 am",
"ph":"8",
"moist":"0"
},
{
"time_stamp":"08:22:57 am",
"ph":"8",
"moist":"0"
},
{
"time_stamp":"08:23:01 am",
"ph":"8",
"moist":"0"
},
{
"time_stamp":"08:23:05 am",
"ph":"8",
"moist":"0"
},
{
"time_stamp":"08:23:09 am",
"ph":"8",
"moist":"0"
}
]
这里的问题是我想在我的图表中显示时间(来自我的json文件),特别是在水平面。类似于下图,但黄绿线显示了我的json文件中的时间
顺便说一下,以下是我在谷歌图表中的javascript代码,我需要关于如何处理以下代码的帮助:
google.charts.load('current', {
callback: drawChart,
packages: ['corechart']
});
// onload callback
function drawChart() {
// JSONP request
var jsonData = $.ajax({
url: 'countrows.php',
dataType: 'json',
}).done(function (results) {
var data = new google.visualization.DataTable(jsonData);
data.addColumn('datetime', 'time_stamp');
data.addColumn('number', 'ph');
data.addColumn('number', 'moist');
$.each(results, function (i, row) {
data.addRow([
new Date(row.time_stamp),
parseFloat(row.ph),
parseFloat(row.moist)
]);
});
var chart = new google.visualization.AreaChart($('#chart').get(0));
chart.draw(data, {
title: 'Soil Analysis',
curveType: 'function',
displayAnnotations: true,
//legend: { position: 'bottom' }
pointSize: 10
hAxis: {format: 'Y,M,d,H';}
});
});
}
drawChart();
setInterval(drawChart, 10000);
最简单的方法是将第一列更改为-->
'string'
data.addColumn('string', 'time_stamp');
另外,由于ajax是异步的,因此无需分配给变量,删除此-->
var jsonData=
并从参数中删除到数据表构造函数
var data = new google.visualization.DataTable(jsonData); // <-- remove jsonData
非常感谢你从未让我失望,一直帮助我谢谢你谢谢你^_^
google.charts.load('current', {
callback: drawChart,
packages: ['corechart']
});
// onload callback
function drawChart() {
$.ajax({
url: 'countrows.php',
dataType: 'json'
}).done(function (results) {
var data = new google.visualization.DataTable();
data.addColumn('string', 'time_stamp');
data.addColumn('number', 'ph');
data.addColumn('number', 'moist');
$.each(results, function (i, row) {
data.addRow([
row.time_stamp,
parseFloat(row.ph),
parseFloat(row.moist)
]);
});
var chart = new google.visualization.AreaChart($('#chart').get(0));
chart.draw(data, {
title: 'Soil Analysis',
curveType: 'function',
pointSize: 10
});
});
}
drawChart();
setInterval(drawChart, 10000);