Javascript 音高图和音高图
我正在使用Highcharts开发混合移动应用程序(Cordova Phonegap),我正在从数据库查询数据,并尝试在图表上动态显示数据 这是获取数据的代码,这是有效的Javascript 音高图和音高图,javascript,cordova,highcharts,Javascript,Cordova,Highcharts,我正在使用Highcharts开发混合移动应用程序(Cordova Phonegap),我正在从数据库查询数据,并尝试在图表上动态显示数据 这是获取数据的代码,这是有效的 var exerciseData = [];//global var chart;//global 编辑2: $(document).ready(function() { //chart is here } //Cordova is ready function onDeviceRead
var exerciseData = [];//global
var chart;//global
编辑2:
$(document).ready(function() {
//chart is here
}
//Cordova is ready
function onDeviceReady() {
db.transaction(queryDB);
}
//查询数据库
function queryDB(tx) {
//get all results from db
tx.executeSql('SELECT * FROM MYTABLE', [], querySuccess, errorCB);
}
function querySuccess(tx, results) {
var len = results.rows.length;
console.log("MYTABLE table: " + len + " rows found.");
for (var i=0; i<len; i++){
console.log("Row = " + i + " Reading_name = " + results.rows.item(i).Reading_name + " Date="+results.rows.item(i).Rec_date + " Reading = " + results.rows.item(i).Reading);
//get exercise data only
if(results.rows.item(i).Reading_name=='exercise'){
var reading=parseInt(results.rows.item(i).Reading);
var thisDate=results.rows.item(i).Rec_date;
var exObj=([manageDate(thisDate), reading]);
exerciseData.push(exObj);
}
}
}
然后在图表上什么也不显示
但如果我将其设置为:
chart.series[0].setData([[1383824000000,10] ],true);
然后我可以看到图表上的数据点
如何修复exerciseData
数组以在Highchart系列上显示数据
console.log(exObj)代码>显示:
[1363996800000, 10]
和console.log(exerciseData)代码>给了我以下信息:
[
Array[2]
0: 1363996800000
1: 10
length: 2
__proto__: Array[0]
]
编辑:
图表代码
$(document).ready(function() {
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
defaultSeriesType: 'line'
},
title: {
text: 'chart'
},
xAxis: {
type: 'datetime',
labels: {
formatter: function() {
return Highcharts.dateFormat('%a %d %b', this.value);
},
dateTimeLabelFormats: {
minute: '%H:%M',
hour: '%H:%M',
day: '%e. %b',
week: '%e. %b',
month: '%b \'%y',
year: '%Y'
}
}
},
yAxis: {
title: {
text: ''
},
min: 0
},
series: [
{
name: 'Exercise',
data: [],
type:'spline'
},
{
name: 'MyData2',
data: [],
type:'line'
});
chart.series[0].setData(exerciseData,true);//does not work
chart.series[1].setData([[1383824000000,10]],true);
});
试试这个:
var exObj=[];
exObj.push(manageDate(thisDate));
exObj.push(reading);
exerciseData.push(exObj);
另一种方法是使用x,y指定点,例如
var exObj = {
x:manageDate(thisDate),
y:reading
}
另外,你需要打电话
chart.series[0].setData(exerciseData,true
在成功函数中。使用我的代码的练习数据的console.log是什么样子的?您的第一个代码与我的代码完全相同:[Array[2]0:13640832000001:12 length:2 proto:Array[0]]第二个只是用x和y替换0和1。试着反转广告。也许这与直线/样条线有关,样条线似乎没有干扰。我认为exerciseData没有获得正确格式的数据,因为当我将其全局设置为exerciseData=[[1383824000000,10],[1623824000000,12];我的第一个代码示例中有一个输入错误。再试一次?另外,console.log在您之前的注释中为代码显示了什么?
chart.series[0].setData(exerciseData,true