高图发行-标记基于y轴的系列数据


Highcharts Issue - Labelling Y-Axis Based Series Data

我有一个关于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日提交的数据…

这显然与这个series参数有关:

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

我的数据是这样输入的:

[23, 24, 25, 29]

而它应该是这样的:

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

我不确定上面的语法是否正确,这就是为什么我在这里…如何告诉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数组传递给上述系列(即带有数据和相关值).

如果你没有一个区间的数据点,那么你可以在序列中指定为null。你可以试试[23rd, 24th, 25th, null, null, null, 29th],它会完美地工作。