1

我需要分析来自供应商和数据库的交付预测,我得到以下数据数组:

Array
(
    [0] => Array
        (
            [delivery_date] => 2012-05-10
            [imported] => 2012-05-10 11:20:37
            [qty] => 114
        )

    [1] => Array
        (
            [delivery_date] => 2012-05-10
            [imported] => 2012-05-11 11:20:37
            [qty] => 228
        )

    [2] => Array
        (
            [delivery_date] => 2012-05-10
            [imported] => 2012-05-15 11:20:37
            [qty] => 380
        )

    [3] => Array
        (
            [delivery_date] => 2012-05-10
            [imported] => 2012-05-16 11:20:37
            [qty] => 380
        )

    [4] => Array
        (
            [delivery_date] => 2012-05-10
            [imported] => 2012-05-17 11:20:37
            [qty] => 380
        )
)

我的问题是客户每天都没有给出完全相同的预测——这很正常,但是当客户在 2012 年 5 月 10 日没有预测他们需要 x 件产品时,我需要绘制出“缺失”的日期。

我对可能解决方案的想法是:

  1. 以某种方式与数据数组混合以填充缺少“导入”日期的空值
  2. 以某种方式将 Google 动态图配置为显示缺失值,而不是从点到点绘制线。

但是到目前为止,我本人还没有成功地使用这些选项中的任何一个:(

代码摘录:google.load('visualization', '1', {packages: ['motionchart']});

function drawVisualization() {
    var data = new google.visualization.DataTable();

    data.addRows(<?PHP echo count($data); ?>);
    data.addColumn('string', 'Artikkel@kuupäev');
    data.addColumn('date', 'Imporditud');
    data.addColumn('number', 'Qty, pcs');

    <?PHP
    $jrk=0;

    foreach ($data as $row) {
        $date_import = date("Y, m, d",strtotime(substr($row[imported],0,10)." -1 month"));
    echo "data.setValue($jrk, 0, '".$row[delivery_date]."');\n";
        echo "data.setValue($jrk, 1, new Date (".$date_import."));\n";
        echo "data.setValue($jrk, 2, ".$row[qty].");\n";
    $jrk++;         
    } 
    ?> 

    var options = {};
    options['state'] =
'{"yAxisOption":"2","time":"2012-03-12","sizeOption":"_UNISIZE","xAxisOption":"_TIME","yZoomedIn":false,"xZoomedDataMax":1331510400000,"yLambda":1,"xZoomedIn":false,"yZoomedDataMin":0,"nonSelectedAlpha":0,"uniColorForNonSelected":false,"orderedByY":false,"dimensions":{"iconDimensions":["dim0"]},"duration":{"timeUnit":"D","multiplier":1},"orderedByX":false,"xLambda":1,"colorOption":"_UNICOLOR","yZoomedDataMax":300000,"showTrails":false,"iconType":"LINE","xZoomedDataMin":1304985600000,"iconKeySettings":[],"playDuration":15000};';

    options['width'] = 1200;
    options['height'] = 600;  

    var motionchart = new google.visualization.MotionChart(
       document.getElementById('visualization'));
       motionchart.draw(data, options);
    }
google.setOnLoadCallback(drawVisualization);
4

1 回答 1

1

这个“问题”现在已经被谷歌工程师解决了,所以没有必要再破解它了。如果缺少值,现在将制动线路。

https://code.google.com/p/google-visualization-api-issues/issues/detail?id=25

于 2014-08-15T09:52:31.563 回答