2010-09-15 58 views

回答

4

您可以将xAxis类型设置为'datetime',然后在plot选项中设置pointInterval和PointStart。

代码示例:

var chart; 
$(document).ready(function() { 
    chart = new Highcharts.Chart({ 
     "xAxis": { 
      "type": "datetime" 

     "plotOptions": { 
      "line": { 
       "pointInterval": 86400000, 
       "pointStart": 1282408923000 
      } 
     }, 
    }); 
}); 

您pointInterval并开始看到的是您可以在其中生成使用getTime()的时间间隔,你的情况是86400000ms这为一天millisecionds的数字。该库根据您的数据间隔显示适当的时间间隔。

+0

这些pointInterval和pointStart与“Series”选项中的pointInterval和pointStart有什么不同? –

+0

说实话,我几个月没有看过highcharts,但是如果我没有记错的话,那是由于日期时间格式造成的,并且它会为你计算间隔,而不是使用系列。希望有所帮助。 – Gazler

0

这里是我的丑陋解决方案:)

我使用数组作为队列。 http://javascript.about.com/library/blqueue.htm 如果您将点数据填充到队列中,则可以为图表系列设置数据。

var myQueue = new Array(); 
var myPoint = [x, y];          myQueue.push(myPoint); 
chart.series[0].setData(myQueue); 

my X axis is not a datetime, it's an integer 
first 
var x = 0; 

当你需要一个新的点时,x值应该总是递增。 http://dl.dropbox.com/u/3482121/picture/highcharts/PM/Screenshot.png

+0

http://jsfiddle.net/sharavsambuu/WAtFK/这里是样本代码 – sharavsambuu

4
xAxis: { 
     categories: categoriesname, 
     labels: { 
      style: { 
       color: '#000', 
       font: '9px Trebuchet MS, Verdana, sans-serif' 
      } 
     }, 
     **tickInterval: TickInterval,**// SET THIS 
     tickPixelInterval: 80, 
     tickmarkPlacement: 'on' 
    }, 
39

这似乎是X轴:标签:步长值是应该用什么来实现:

 xAxis: { 
      categories: ['JAN', 'FEB', 'MAR', 'APR', 'MAY'], 
      labels:{ 
       step: 2 // this will show every second label 
      } 
     }, 

Step Axis Labels

超级晚了,但我想这可以帮助别人出。

+0

这个特定的解决方案就像一个图表的魅力,我开始在一个奇数年的日期时间xAxis(在这种情况下,1997年1月1日)。试图调整tickInterval以显示每隔一年结束于1996年开始的轴,该轴在我的图表中没有数据。这次真是万分感谢! –