2017-08-14 6 views
1

私はvAxis google chartsに最低限のmaxValueを設定する問題に直面しました。 私はデータを持っているとき、それはWith Datagoogle charts minimum maxValue

完璧に動作します。しかし、私は、例えば10最小maxValueのセット、私はデータを持っていない時に0から10までのスケールを見ていると見ることができるどのようにこのWithoutData

データを持っていない場合データがあるときのmaxValue?

この私のコード

<div class="show_chart"> 
    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> 
    <script type="text/javascript"> 
     google.charts.load('current', {'packages': ['bar']}); 
     google.charts.setOnLoadCallback(drawChart); 
     function drawChart() { 
     var data = google.visualization.arrayToDataTable(<?= $data ?>); 
     var options = { 
     chart: { 
     title: 'Company Performance', 
     subtitle: 'Sales, Expenses, and Profit: 2014-2017', 
     }, 
     vAxis: { 

       viewWindow: { 
       min: 0, 
       }, 

       textStyle: {fontSize: 12}, 
       format: '0', 

     }, 
       hAxis: { 
       title: "Days", 
       }, 
       format: '0', 

     }; 
     var chart = new google.charts.Bar(document.getElementById('columnchart_material')); 
     chart.draw(data, google.charts.Bar.convertOptions(options)); 
     } 
    </script> 
</div> 

<div id="columnchart_material" style="width: 800px; height: 500px;"></div> 

答えて

0

データがある場合は、次に使用し、その後、各列

で最大を見つけるため
使用getColumnRange

10のデフォルトの最大値を設定することができますMath.max、このようなもの...

var rangeMax = 0; 
if (data.getNumberOfRows() > 0) { 
    for (var i = 0; i < data.getNumberOfColumns(); i++) { 
    rangeMax = Math.max(rangeMax, data.getColumnRange(i).max); 
    } 
} else { 
    rangeMax = 10; 
} 

この質問で作業スニペット次...

google.charts.load('current', { 
 
    callback: function() { 
 
    var data = new google.visualization.DataTable({ 
 
     cols: [ 
 
     {label: 'x', type: 'string'}, 
 
     {label: 'y0', type: 'number'}, 
 
     {label: 'y1', type: 'number'} 
 
     ] 
 
    }); 
 
    drawChart(data); 
 

 
    data.addRows([ 
 
     [{v: '01'}, {v: 10}, {v: 20}], 
 
     [{v: '02'}, {v: 5}, {v: 40}], 
 
     [{v: '03'}, {v: 1}, {v: 30}], 
 
     [{v: '04'}, {v: 2}, {v: 60}], 
 
     [{v: '05'}, {v: 8}, {v: 10}] 
 
    ]); 
 
    drawChart(data); 
 
    }, 
 
    packages: ['corechart'] 
 
}); 
 

 
function drawChart(data) { 
 
    var rangeMax = 0; 
 
    if (data.getNumberOfRows() > 0) { 
 
    for (var i = 0; i < data.getNumberOfColumns(); i++) { 
 
     rangeMax = Math.max(rangeMax, data.getColumnRange(i).max); 
 
    } 
 
    } else { 
 
    rangeMax = 10; 
 
    } 
 

 
    var options = { 
 
    vAxis: { 
 
     format: 0, 
 
     viewWindow: { 
 
     min: 0, 
 
     max: rangeMax 
 
     } 
 
    } 
 
    }; 
 

 
    var container = document.getElementById('charts').appendChild(document.createElement('div')); 
 
    var chart = new google.visualization.LineChart(container); 
 
    chart.draw(data, options); 
 
}
<script src="https://www.gstatic.com/charts/loader.js"></script> 
 
<div id="charts"></div>

+0

運を参照してください? – WhiteHat