我有一个关于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]
,它会完美地工作。