2013-10-08 46 views
0

我用Highstock显示图表有一些困难。似乎我无法访问图形应该显示的x轴部分。我是Highstocks的新成员,所以我的代码看起来像一团糟,但我的想法如下: 首先从服务器访问json文件。将其转换为正确的格式[[日期戳,值],....]。然后显示图形。用highstock显示json文件

这里是我的JSON文件(file.json):

[{"date":"2013-10-04T22:31:12.000Z","value":30000},{"date":"2013-10-04T22:31:58.000Z","value":35000},{"date":"2013-10-04T22:32:05.000Z","value":60000},{"date":"2013-10-04T22:32:12.000Z","value":45000}] 

我的代码如下:

$(function() { 

chartOjb = new Object(); 
var mydata = []; 

$ .getJSON( 'file.json',函数(数据){

 $.each(data, function (index, item) { 
      chartOjb.name = getTimestamp(item.date); 
      chartOjb.data = item.value; 
      mydata.push({ x: chartOjb.name, y: parseFloat(chartOjb.data) }); 


     }); 
     $('#container').highcharts('StockChart', { 

      chart: { 
       type: 'candlestick', 
       zoomType: 'x' 
      }, 

      navigator: { 
       adaptToUpdatedData: false, 
       series: { 
        data: mydata 
       } 
      }, 

      scrollbar: { 
       liveRedraw: false 
      }, 

      xAxis: { 
       type: 'datetime', 
       title: 'Time', 
       //minRange: 3600 * 1000/15 // one hour 
      }, 

      rangeSelector : { 
       selected : 1 
      }, 

      title : { 

       text : value 
      }, 

      series : [{ 
       name : 'Capacité', 
       data : data, 

       tooltip: { 
        valueDecimals: 2 
       } 
      }]   });   }); 

}); 

非常感谢你多为您的帮助

回答

0

您可以添加您的功能getTimestamp()?也许有什么问题。 记住:

  • x值应该是时间戳,
  • 使用了大量的对象{ x: x, y: y }时,设置turboThreshold
+0

这里是我的getTimestamp()代码:\t功能getTimestamp( str){var d = str.match(/ \ d +/g); return + new Date(d [0],d [1] - 1,d [2],d [3],d [4],d [5]); } –

+0

'data:data,'< - 不应该是'data:mydata,'? –