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-05-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

この「問題」は現在Googleのエンジニアによって解決されているため、ハッキングする必要はありません。値が欠落している場合、ラインはブレーキされます。

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

于 2014-08-15T09:52:31.563 に答える