Datetime HighChart中具有相同xAxis数据的多个系列

Datetime HighChart中具有相同xAxis数据的多个系列,datetime,highcharts,time-series,Datetime,Highcharts,Time Series,我使用Highchart在两个Yax和一个datetime xAxis上绘制多个系列(大约20个)。数据通过提供JSON答案的PHP脚本动态加载。到目前为止,一切顺利 我的问题是,为了符合Highchart,我必须通过网络发送每个系列的日期时间信息(当然,我可以在只收到一次日期时间信息后更改JSON中的JSON数据,但这也是一个麻烦)。500个数据点乘以20个系列乘以13个字节的时间戳=每次刷新130KB的流量,其中1/20就足够了 我的问题是:是否有可能将“序列”(日期时间)信息传递给xAxi

我使用Highchart在两个Yax和一个datetime xAxis上绘制多个系列(大约20个)。数据通过提供JSON答案的PHP脚本动态加载。到目前为止,一切顺利

我的问题是,为了符合Highchart,我必须通过网络发送每个系列的日期时间信息(当然,我可以在只收到一次日期时间信息后更改JSON中的JSON数据,但这也是一个麻烦)。500个数据点乘以20个系列乘以13个字节的时间戳=每次刷新130KB的流量,其中1/20就足够了

我的问题是:是否有可能将“序列”(日期时间)信息传递给xAxis,然后按发生顺序将Yax序列分配给xAxis值?即我通过:

[136179639000013617964000001361796410000]到xAxis,以及 [1,2,3]到yAxis

Highchart分配1到1361796390000,2到1361796400000,依此类推


感谢您的回答。

您实际上不需要传递序列中每个数据点的日期时间。您只需传递序列的开始日期时间,然后使用pointStart让图表知道何时开始计数,如下所示:

series: [{
    name: 'Wind Speed',
    data: [0.52, 0.778, 0.746, 0.594, 0.716, 0.793, 0.648, 0.828, 0.202, 0.066, 0.116, 0.116, 0.17, 0.195, 0.051, 0, 0.368, 2.365, 2.841, 2.693, 2.416, 2.541, 2.429, 2.888],
    pointStart: 1360893600000,
    pointInterval: 3600000
}]
见以下行动:

尽管有许多不同的方法可以让您轻松地计算出所需的特定时间,但pointStart仍在期待。为了演示,我在示例中对其进行了硬编码

使用pointStart时,需要pointInterval来准确地为数据点分配时间。值得注意的是,这只适用于具有规则点间隔的数据。如果您有不规则的数据,您确实需要为每个数据点提供日期时间

这并不能完全回答您关于将时间作为数组传递然后将其分配给xAxis的问题,但我确实相信pointStart方法没有数组分配复杂


另外,根据数据更新的频率,您应该在服务器和客户端上缓存数据,以防止在数据没有实际更改的情况下通过网络进行不必要的刷新。

非常感谢您的帖子,这确实回答了我的问题。问题是我通常有固定的点间隔(每10秒)。但是,有时可能会出现数据集不可用的情况。我仍然可以将这些缺失的值作为空值传递给HighCharts,这就是我要尝试的。只有当所有数据的分离量完全相同,并且在给定的时间跨度内没有缺失的数据点时,这才有效。