2016-12-05 2 views
2

私は製品の価格を示す線図に取り組んでいます。問題はグラフの振幅が非常に大きく、非常にばらついていることです。振幅が小さくなり、グラフは良く配置されただろう - Y軸の範囲が大きくなるかどう Google linechart - 小さな振幅を設定する

enter image description here

だから(1500年の800をしましょう)。

あなたはその方法を知っていますか?

これはコードであり、実際には複数のデータセットを結合します。

<script> 
    function range(start, end) { 
     var array = []; 
     for (var i = start; i < end; i++) { 
      array.push(i); 
     } 
     return array; 
    } 


    function drawChart() { 
     var google_chart_json = {{ google_chart|safe }}; 
     var datas = []; 
     $.each(google_chart_json, function (key, val) { 
      var domain = key; 
      var data = new google.visualization.DataTable(); 
      data.addColumn('datetime', domain + 'Date'); 
      data.addColumn('number', domain); 


      $.each(val, function (_, scan) { 
       var year = scan[0][0]; 
       var month = scan[0][1]; 
       var day = scan[0][2]; 
       var hour = scan[0][3]; 
       var price = scan[1]; 

       data.addRows([ 
        [new Date(year, month-1, day, hour), price] 
       ]); 
      }); 
      datas.push(data); 
     }); 
     var joinedData = datas[0]; 
     $.each(datas, function (index, datatable) { 
      console.log('joining index ' + index) 
      if (index != 0) { 
       joinedData = google.visualization.data.join(joinedData, datatable, 'full', [[0, 0]], range(1, index + 1), [1]); 
      } 
     }); 


     var chart = new google.visualization.LineChart(document.querySelector('#chart_div')); 

     chart.draw(joinedData, { 
      height: 500, 
      width: 1000, 
      interpolateNulls: true, 
      explorer: { 
       maxZoomOut: 10, 
       keepInBounds: true 
      }, 
     }); 
    } 
    google.charts.load('current', {packages: ['corechart'], callback: drawChart}); 
{# google.load('visualization', '1', {packages: ['corechart'], callback: drawChart});#} 
</script> 

答えて

1

vAxis.viewWindowオプションを使用して、Y軸の範囲を設定...

vAxis: { 
    viewWindow: { 
    min: 800, 
    max: 1500 
    } 
} 
+0

はい、ありがとう。それは最大値と最小値に依存するようにすることは可能ですか?私はJSONを使い、最大値と最小値を見つけることができますが、もっと簡単な方法があるかもしれません... –

+1

はい、データテーブルにはメソッドgetColumnRangeがあります。これはカラムインデックスをとり、min最大値 – WhiteHat

関連する問題