gpt4 book ai didi

javascript - PhoneGap 和 Highcharts

转载 作者:行者123 更新时间:2023-11-30 18:06:58 26 4
gpt4 key购买 nike

我正在使用 Highcharts 开发混合移动应用程序 (Cordova-Phonegap),我正在从数据库中查询数据并尝试在图表上动态显示数据。

这是获取数据的代码,可以正常工作。

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);
}

}
}

现在,当我获取 exerciseData 并将其设置如下时:

chart.series[0].setData(exerciseData,true);

然后图表上什么也不会显示。

但是如果我将它设置为:

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

在您的成功函数中。

关于javascript - PhoneGap 和 Highcharts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15587814/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com