Highcharts问题 - 标记基于Y轴的系列数据

时间:2011-08-29 16:21:14

标签: php javascript jquery graph highcharts

我对highcharts有一个问题......

考虑示例关系:

Data
-----
Id(pk)
Date date
Data varchar(50)

此关系包含数据。重要的是要注意日期是非连续的......即。数据不是每天输入的。示例表可以是

Data
-----
Id       Date        Data
1     2011-08-22   SomeData
2     2011-08-29   MoreData

我向用户提供HTML / jQuery界面,其中可以从数据库中提取数据并使用highcharts绘制图表。这很有效:

http://dev.speechlink.co.uk/David/fifthiteration/dbgrapher.php

我使用以下jQuery来标记x轴:

xAxis: {
         type: 'datetime',
         maxZoom: 14 * 24 * 3600000, // fourteen days
         lineWidth: 1,
         lineColor: '#999999',
         title: {
            text: 'Date' 
         }
       }

这是系列剧:

series: [{
         type: 'spline',
         name: data.questionTitle,
         pointInterval: 24 * 3600 * 1000,
     pointStart: Date.UTC(data.year, data.month, data.day),
     data: cdata,
     lineColor:  '#f6a828',
     color: '#418ed6'
      }]

现在这个问题很好吧一个问题 - >所有点都被绘制成好像它们是连续几天完成的......事实并非如此......例如,如果在我的表中我在24日提交了数据,那么在29日之前没有数据....数据29日提交的数据错误地放置在25日......

这显然与这个系列论点有关:

         **pointInterval: 24 * 3600 * 1000,**

我的数据是这样的:

[23rd,24th,25th,29th]

它可能应该是这样的:

[23rd,24th,25th,null,null,null,29th]

我不确定上面是否是正确的语法..这就是为什么我在这里...你怎么告诉highcharts跳过一个点,但保持相同的点间隔....

编辑:

我在highcharts上看到你可以像这样传递数据:

var chart = new Highcharts.Chart({
    chart: {
        renderTo: 'container'
    },
    xAxis: {
        type: 'datetime'
    },

    series: [{
        data: [
            [Date.UTC(2010, 0, 1), 29.9], 
            [Date.UTC(2010, 2, 1), 71.5], 
            [Date.UTC(2010, 3, 1), 106.4]
        ]
    }]
});

有没有办法将正确格式的php数组传递给上面的系列(即带有数据和相关值)..

1 个答案:

答案 0 :(得分:1)

如果您没有间隔的数据点,则可以在系列中指定为null。你可以试试[23rd, 24th, 25th, null, null, null, 29th]它会完美运作。