【问题标题】:Highcharts Non-Identical Time SeriesHighcharts 非相同时间序列
【发布时间】:2014-07-23 20:21:09
【问题描述】:

我有一组表示不同时间序列的数组:

  Array
  (
      [0] => 
      [2014-01-08] => 1408
      [2014-01-09] => 1357
      [2014-01-10] => 1272
      [2014-01-11] => 1625
      [2014-01-12] => 1516
      [2014-01-13] => 2002
      [2014-01-14] => 2301
  )
  Array
  (
      [0] => 
      [2014-01-21] => 32
      [2014-01-22] => 234
      [2014-01-23] => 195
      [2014-01-24] => 176
      [2014-01-25] => 231
      ...

我想在 HighCharts linechart 中显示这些数据。

我知道这可以通过文档来完成:http://jsfiddle.net/gh/get/jquery/1.9.1/highslide-software/highcharts.com/tree/master/samples/highcharts/demo/spline-irregular-time/

如果我不考虑这些时期是不相同的,我可以用 Highroller 创建一个情节:

foreach(array_keys($arrays) as $campaign_name) {
  $data = array_values($arrays[$campaign_name]);

  $series[$campaign_name] = new HighRollerSeriesData();
  $series[$campaign_name]->addName($campaign_name)->addData($data);
}

但此图表中的所有线都以 x = 0 开头。

然后我尝试创建类似于上面jsfiddle 的语法,但绘图没有呈现:

foreach(array_keys($arrays) as $campaign_name) {
  $data = array_values($arrays[$campaign_name]);
  $dates = array_keys($arrays[$campaign_name]);

  $data = array_combine($dates, $data);

  $series[$campaign_name] = new HighRollerSeriesData();
  $series[$campaign_name]->addName($campaign_name)->addData($data);
}

【问题讨论】:

  • [0] => 它可能会产生问题,因为它是添加索引=0的点,所以它会从0开始绘制图表,对吧?
  • 感谢您的快速回答。这不是问题。空的 [0] => 被翻译成 false 并且不被绘制。
  • 能否附上你的数据翻译成JS后是如何显示的?谢谢!

标签: php highcharts


【解决方案1】:

你可以定义你的数据然后修改为timestampDemo:http://jsfiddle.net/robschmuecker/NHnkQ/

    myDataSeries1 = [
        ["2014-01-08", 1408],
        ["2014-01-09", 1357],
        ["2014-01-10", 1272],
        ["2014-01-11", 1625],
        ["2014-01-12", 1516],
        ["2014-01-13", 2002],
        ["2014-01-14", 2301]
    ];

    myDataSeries2 = [
        ["2014-01-21", 32],
        ["2014-01-22", 234],
        ["2014-01-23", 195],
        ["2014-01-24", 176],
        ["2014-01-25", 231]
    ];

    $.each(myDataSeries1, function (index, item) {
        item[0] = new Date(item[0]).getTime();
    });

    $.each(myDataSeries2, function (index, item) {
        item[0] = new Date(item[0]).getTime();
    });

... /// Further down 

        series: [{
            name: 'MyData1',
            data: myDataSeries1
        }, {
            name: 'MyData2',
            data: myDataSeries2
        }]

【讨论】:

    猜你喜欢
    • 2012-11-09
    • 2019-02-12
    • 1970-01-01
    • 2012-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-15
    • 1970-01-01
    相关资源
    最近更新 更多