2016-12-03 4 views
0

Googleのグラフにループを作成したいのですが、グラフに200ポイントあり、1秒間に1ポイント右に移動しますが、グラフが届くとすべての点。ここ は、チャートの私のコードです:Googleのグラフのループデータ

function drawChart5() { 
     var options = { 
    'backgroundColor': 'transparent', 
     width: 1200, 
     height: 240, 
     animation: { 
     duration: 1000, 
     easing: 'in', 
     }, 
     hAxis: {viewWindow: {min:0, max:200}} 
    }; 

    var chart = new google.visualization.AreaChart(
     document.getElementById('visualization')); 
    var data = new google.visualization.DataTable(); 
    data.addColumn('string', 'x'); 
    data.addColumn('number', 'y'); 

    var MAX = 100; 
    var x=0; 
    var f=20; 
    var T= 1/f; 
    var PI = Math.PI; 
    var DT=T/MAX; 
    for (var i = 0; i < 2*MAX; i++) 
    { 
     x=(Math.sin((2*PI)*f*i*DT)); 
     data.addRow([i.toString(), x]); 
     console.log(x) 
    } 

    function drawChart() {  
     google.visualization.events.addListener(chart, 'ready', 
      function() {    
      }); 
     chart.draw(data, options); 
    } 
     setInterval(function() 
     { 
      options.hAxis.viewWindow.min += 1; 
     options.hAxis.viewWindow.max += 1; 

        chart.draw(data,options) 
       },2 000); 

    drawChart(); 
    } 

This is the chart

+0

最後のポイントが表示されたら、全体のプロセスを開始したいだけですか? – WhiteHat

+0

はい、私は "infinty"グラフの効果を作成したい – JorgeLuis009

答えて

1

私はあなたがこのようにのために行くされている効果を達成するであろう:

代わりのDataTableのDataViewのを使用し、作成するためにDataView.setColumns()を使用します上記で定義した式を実行する計算列。私が知る限り、値を計算するために使用するアルゴリズムはdeterministicなので、計算を実行するために必要なのはx値であり、任意の位置のy値を決定することができます。

この方法では、グラフが関数を使用してオンデマンドでy値を計算するため、DataTableを自分で作成する必要はありません。グラフの表示範囲は問わず、グラフが描画されるときに必要な値が計算されます。

+0

申し訳ありませんnbering、しかし、私はあなたを理解していない!どのように私はその効果を達成することができます[DataView.setColumns](https://developers.google.com/chart/interactive/docs/reference#DataView_setColumns)?、 "calc"などを使用して? – JorgeLuis009