Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 音高图和音高图_Javascript_Cordova_Highcharts - Fatal编程技术网

Javascript 音高图和音高图

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

我正在使用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);     
              }

           } 
          }
然后在图表上什么也不显示

但如果我将其设置为:

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